うぶんつに導入など
当分朝練こっちネタで。
ええと、以下が導入、らしい。
Inst libhawtjni-runtime-java (1.0~+git0c502e20c4-3 Ubuntu:12.04/precise [all]) Inst libjansi-native-java (1.0-3 Ubuntu:12.04/precise [all]) Inst libjansi-java (1.4-3 Ubuntu:12.04/precise [all]) Inst scala-library (2.9.1.dfsg-3 Ubuntu:12.04/precise [all]) Inst scala (2.9.1.dfsg-3 Ubuntu:12.04/precise [all])
入れてみました。とりあえず java が云々は気にすまい。
$ sbt console sbt: command not found $
と思ったら /usr/bin に scala というソレがあったのでタタいてみたら
$ scala Welcome to Scala version 2.9.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_06). Type in expressions to have them evaluated. Type :help for more information. scala>
あらら、サンプルに出てたソレを入力してみると
scala> 1 + 1 res0: Int = 2 scala>
なんとなく動いているカンジ。でびあん系だと違うのかな。。
scala> val two = 1 + 1 two: Int = 2 scala> two res1: Int = 2 scala>
ええと、サンプルに以下な例が出てます。
scala> def addOne(m: Int): Int = m + 1 addOne: (m: Int)Int
これ、Scheme てきな addn の定義はどうやるのかな。
(define addn (lambda (n) (lambda (x) (+ x n))))
以下なカンジ?
def addN (n: Int): (x: Int) => x + n
ヤッてみます。
scala> def addN (n: Int): (x: Int) => x + n <console>:1: error: ')' expected but ':' found. def addN (n: Int): (x: Int) => x + n ^
ぬ、駄目か。つうかサンプルに以下な記述を発見。
scala> def adder(m: Int, n: Int) = m + n adder: (m: Int,n: Int)Int scala> val add2 = adder(2, _:Int) add2: (Int) => Int = <function1> scala> add2(3) res50: Int = 5
むむ。これはなんとゆーか卑怯ですねw
つか、以下な記載もあって謎なカンジ満点。
scala> (adder _).curried res1: (Int) => (Int) => Int = <function1>