言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

くっついた!

うわー!
今まで考えていた全ての問題がくっついた!
感じがした!
ぬか喜びにならないようにゆっくり考えないといけないけど。
色々関係ないことに手を出していたように見えて。
一つの問題の色々な側面だった!

とりあえずメモ。

言語ゲーム」をやっていた時に、結局ツリーしか出来ないんだったら面白い使い方は全然ないやん!と思っていた。それから阿部さんのアドバイスに従って双方向制約に挑戦したりしたがそれは自分の力量では無理だと分かったので片側制約でどれだけやれるか調べているうちに Haskellモナドや Arrow がぴったりだと思った。しかし書いてある論文が抽象的過ぎて意味不明なので、もっと手軽な関数型言語は無いかと探していると Joy に出会った。Joy をもっと純粋な言語仕様にすると、線形論理という考え方にハマル事が分かった。線形論理を使うとデータフローが書ける事が分かった。しかも Arrow を応用すれば、ただの算術演算だけじゃない反応プログラミング(まだ勉強中だが、普通のプログラムで書けるイベントドリブンのプログラムは全部書けるはず)が出来るので、完全にスクイークGUI フレームワークを置き換えられるくらいの可能性はある事が分かった。しかしそれは大変だからとりあえず etoys の中だけでやろうと考えた。今日 Squeak 版 Joy と etoys を合体させるために、Joy のプログラムをすぐ実行するんじゃなくて、一度グラフを作ってから実行するというのを設計していた。ノートの中で Joy のプログラムを書いて、機械になったつもりで鉛筆で線を引いていった。なんかこれ前にもやった事あるなーと思っていた。「言語ゲーム」で機械にやらせた事。線形のデータからツリーを作る事。を手でやっていただけだった。