言語知る。

関数型とオブジェクト指向のハイブリット言語で、JVM上で動くらしい。
一言で言うとNemerleJava版って感じ。
で、関数の型がなんというか、俺が考えてたのと同じような形になってるってこと。
で、完全に完成された形か?っていうと、微妙みたい。


http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20060410


よかったのか、悪かったのかはよくわかんないけど。
最近、リードマクロで何でも出来るってのは作れそうにないなぁって気がしてきたことやら、
ユーザー演算子定義さえあったら、結構いろいろな表現ができて十分なんじゃなかろうかとか、
そんな気分なので、NemerleよりScalaのほうがいいかもなぁなんて思うのでした。

scala> def f(x:Int)(y:Int) = x + y;
f: (scala.Int)(scala.Int)scala.Int
scala> val f = (x:Int) => (y:Int) => x + y
f: (scala.Int) => (scala.Int) => scala.Int = 
scala> f(1)
line25: (scala.Int) => scala.Int = 

このへんの型が、なんで、=>がついてたり、ついてなかったりするんだ、、、。
どっちなんだ?なんでなんだって感じ。
どっちにしても、ここらへんで、
にたようなことを考えてられてるんだなってのは分かる。
とにもかくにも、

(scala.Int)(scala.Int)scala.Int

このような、型を持ってる言語は始めてみたので嬉しくなったのでした。