Open pasberth opened 11 years ago
うまく行かないのは遅延評価だから、xがthunkのままになってaが評価されないから。 建前上Macraには副作用がないはずだから、これで問題ない。 要するに、!doを廃止したいなら、!doと!printを廃止すればいいと思う。
となると!defineをどうするかだけど、defineは関数への引数にはなり得ないから、そこだけ先行評価するとかかな。
!print も廃止して IO モナドにしよう
define だけ先行評価でいいと思う
もともと !do って
これを書くために導入したんだけど、これって
と書き直せるはずなんだよね。 (今の master だとうまくいかないっぽいけど)
!do がなくなれば
!
から始まる構文がぜんぶインストラクションと 1対1対応するのできれいな仕様になる