id:takuto_hさんのCyanとYellowの移植をSilverlight 3に対応しました。動作確認とソースのダウンロードは以下です。
変更点は以下の通りです。
- ドキュメントリストをListBoxからTreeViewに移行
- リビルドするとListBoxのホイールスクロールがおかしくなっていたのを修正 (詳細は id:n7shi:20090724 を参照)
カリー化
改めてCyanをいじってみたのですが、関数の中身が表示されるため、カリー化の動きがとても分かり易いと思いました。
cyan> add=^(x):^(y):x+y => ^(x){ ^(y){ x.(+)(y) } } cyan> inc=add(1) => ^(y){ x.(+)(y) } cyan> inc(3) => 4
同じことをHaskell(GHCi)でやってみても素っ気ないです。
Prelude> let add = \x -> \y -> x + y Prelude> let inc = add 1 Prelude> inc 3 4
これを見比べると、「λ」がCyanでは「^」、Haskellでは「\(本来はバックスラッシュ、Windowsでは文字コードの関係で円記号)」に見立てられているのがよく分かります。