うはwwwPrologでGrass実装したwwww
つい最近Grassという言語を知りました。
登場したのは結構前みたいですね。
見事に時代に乗り遅れました。
しっかりとした操作的意味論が載っていたため、
R6RSの時と同様にPrologで作ってしまいました。
ソース: grass-sem-utf-8.swi
全角文字の入力は受け付けますが、
表示には対応していません。
実行結果
Yes ?- evaluate("うほwWWwwww",R). w R = [119, []] ; No ?- evaluate("wwWWwv wwwwWWWwwWwwWWWWWWwwwwWwwv wWWwwwWwwwwWwwwwwwWwwwwwwwww", R). ww R = [119, []] ; No
Grassの作者です.
おおお!すばらしい!
GrassのWebページからリンクを張らせて頂きたいと思います.
評価器はともかく,構文解析器もPrologだとこんなにすっきり書けるんですね.なるほど…
わーい。
作者の方に褒めてもらえるとは思っていませんでした。
構文解析の部分はなるべく仕様に近い形で書いたため、
完結な形になっているんですが、
その代わり非常に効率が悪いです。
けど、効率を考えるとあんましPrologっぽくないし
なんとも悩ましいところです。