Scala Primer

August 14, 2015

scala

programming

Scala Primer

Scala のオブジェクト

#コンパイル

    scalac HelloWorld.scala
    scala HelloWorld

    scalac -d classes HelloWorld.scala
    scala -cp classes HelloWorld

for 構文

    for (n:Int <- Range(1,101))
      total += n
    for (n:Int <- Range(1,101); if (n % 2 == 0))
      total += n

メソッドと関数

    object HelloWorld {

      def main(args: Array[String]) = {
        println("Hello World")
      }

      def pritest(s: String) = {
        println(s)
      }
    }
    object HelloWorld extends App {
      println("Hello World")
    }
    > scala HelloWorld.scala
    実行結果では何も表示されない

    > scalac HelloWorld.scala
    > scala HelloWorld
    printlnの結果が表示される
    object HelloWorld extends App {
      println("Hello World")
    }
    HelloApp.main(null)
    > scala HelloWorld.scala
    printlnの結果が表示される
    object HelloWorld {

      def main(args: Array[String]) = {
        println("Hello World")

        val pritest = (s: String) => {
          println(s)
        }
      }
    }
    def func (a:Int, b:Int)
    func(b=1, a=2)
    object HelloWorld {
      def main(args: Array[String]) = {
        val func = pritest _
        func(1)
      }

      def pritest(num: Int) = {
        println(num)
      }
    }

カリー化

    object HelloWorld {
      def main(args: Array[String]) = {
        val pritest = preTest(1)
	pritest(10)
      }

      def preTest(min: Int) = (max: Int) => {
        for(n:Int <- Range(min, max + 1))
	  println(n)
      }
    }

Reference