最近 Types and Programming Languages を読んでいて、はじめは我慢していたものの、やはりラムダ式の簡約をコンピュータで確認したい気持ちが高まってきたので、ブラウザで動くものを書いてみた。この本には OCaml による実装の章がときどき挟まれるので、演習の一環ともいえる。 Lambda Calculator "(λx.λy.x y)(λz.z)" といったラムダ式を入力して送信すると(λ は \ で代用可能)、解析された項が出力される。その後1ステップずつ簡約して、項が評価されていく過程を眺められる。評価戦略は TAPL にしたがって call-by-value と call-by-name を提供してるつもりです。毎回どのサブ項が評価されたのかがハイライトされるので、実用的。 同じ項を何度も入力するのが辛いので文字列マクロを導入してあり、"$omega" など
![ブラウザで動くラムダ計算器を作った(Scala で) - 詩と創作・思索のひろば](https://cdn-ak-scissors.b.st-hatena.com/image/square/624a8d21ad252a681cfab7884f322ba6843ad18c/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmotemen%2F20140731%2F20140731133327.png)