言語ゲーム

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

Twitter: @propella

俺様言語 Lazy を作る。その5。(進展なし)

ここ数日体調を思いっきり崩したのと、仕事で手一杯になってしまったので進展はありません。なので自分でもどこまでやったか忘れないように現在の状況を書きます。実は進展が無いと言いつつ数日前から何度もコードを書いては消し書いては消しという事を繰り返して、あまりの自分の能力の無さにあきれてしまいます。という愚痴は置いといて。

  • 遅延評価の理屈は何となく分かったと思う。
  • ようするに副作用が無いので、リストが答えとして返るとき、リスト特定の位置の答えは他の部分に関係なく求まるという点が画期的で、無限リストもこの手で難なく扱う事が出来る。
  • 大島さんに教えてもらった scheme で言うと何でも delay と force だと思えば良い。
  • 部分リストを評価しないで返すという事は、レキシカルスコープが必要。

れ、レキシカルスコープ!こんな二、三百行のプログラムでそんな大それた事をするつもりは無かったのだけど、遅延評価にレキシカルスコープが必要とは意外に大仕事だ、こういうトイ言語の場合、実行スタックがそのまま変数のスコープになるダイナミックスコープでやると楽勝なのだが、そもそも非正格な言語では実行スタックという物が無いのでこの手が使えない。

このレキシカルスコープ。単に少しルールが変わるだけだと考えていたら大間違いで、えらく面倒臭くて、半分やる気を失っている状態です。

ちなみに体調はどういう具合かと言うと、膀胱(?)はマシになってきましたが頭痛が酷くて、アレックスに聞くとクランベリーを食べると良いらしい(根拠不明) なので、甘酸っぱい物が嫌いなのにも関わらず大量のクランベリーの干物と水をがぶ飲みしています。来週もっと酷くなったら病院も考慮する予定です。