S-99を解く。GCD実装するだけ、楽勝とおもったらへんなとこではまった。
対話環境では動く
scala> def gcd(a:Int, b:Int): Int = if (b == 0) a else gcd(b, a % b) gcd: (a: Int, b: Int)Int scala> gcd(36,63) res0: Int = 9
でも、スクリプトにして呼ぶとvalue % is not a member of Intっていうエラー
$ scala p32.scala /Users/kzfm/scala/p32.scala:2: error: value % is not a member of Int def gcd(a:Int, b:Int): Int = if (b == 0) a else gcd(b, a % b) /Users/kzfm/scala/p32.scala:4: error: type mismatch; found : scala.Int(36) required: Int println(gcd(36, 63))
scala.Intって何?ってことで型の定義を変更したら動いた
def gcd(a:scala.Int, b:scala.Int): scala.Int = if (b == 0) a else gcd(b, a % b) println(gcd(36, 63))
よくわからん。