これは圏です(はてな使ったら負けだとおもっていた)

きっと何者にもなれないつぎの読者につづく。

Io でもおk

http://wiredvision.jp/blog/masui/200803/200803030100.html
via inforno :: 日本語プログラミング言語Scala
Ruby もいいけど Smalltalk でも、おk。 - Smalltalkのtは小文字です

勉強がてらIoでもやってみた。

こんな感じです

Io> 100の平方根の逆数を表示する
0.1==> 0.1

なんとスペースも要りません!すごい!

こんなソースです。

Object 100の平方根の逆数を表示する := method( (1 / (100 sqrt)) print )

ごめんなさい。嘘です。


真面目にやるとこんな感じのができます。

Io> 100 の平方根 の逆数 を表示する
0.1==> 0.1
Io> 100の(平方根)の(逆数)を(表示する)
0.1==> 0.1

こんな感じのソース。

Number do (
  の平方根 := getSlot("sqrt")
  平方根   := getSlot("sqrt")
  の逆数   := method( 1 / self )
  逆数     := getSlot("の逆数")
)

Object do(
  を表示する := method( self print )
  表示する   := method( self print )
)

Object setSlot("の", method(
  self doMessage(call message arguments pop())
))

Object を := getSlot("の")