うぶんつに導入など

当分朝練こっちネタで。
ええと、以下が導入、らしい。

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>