delay実装
```d.a.b.cがbを出力するのは正しい挙動なのかな?
unlambdaでコードを書く力がないと、作ったunlambdaの挙動が正しいかどうかがすぐにわからない。
Schemeで書かれた処理系で試してみた。
> (main) `d.a (d1 (pr #\a)) > (main) ``d.a.b a(pr #\b) > (main) ```d.a.b.c ab(pr #\c)
あってるのかどうかもすぐにはわからない。。。
Perlで書かれた処理系
`-d \-.a
全部同じ出力。。。あやしいい。。。
とりあえずX(Y)にすべきところをY(X)にしていたので出力されるのはcが正解だと思うのだけども。。
とりあえずわたしはドキュメントを読んで下のような挙動をするものと解釈したのです。。。
>>> run("`d`.a.a") <promise0> >>> run("``d`.a.ar") a<promise1>
とりあえずこれを信じて、call/ccの方を実装した方がいいのかも。実装するとわかるのかも。でもcall/ccよくわからない(>_<)