Portable PrologをCommon Lispで動かした bit 1982年05月号『Prolog入門(2)』に Portable PrologというLISPで書かれた小さなProlog処理系が載っている。 “Portable” という名前の通り色々な環境で動かすことを前提としており、 ほぼLISP 1.5の機能のみで書かれているため移植が簡単にできるようになっている。 これを少し書き換えてCommon Lispで動かした。 移植の方針 今回は「もとのプログラムを極力書き換えない」という方針で移植することにした。 コードを読んでいると prog を let に書き換えたり、 cond を when に書き換えたりしたくなるような箇所が多々あるが、 そういった気持ちをぐっとこらえ、最小限の変更のみを行った。 実際に変更した箇所 もとのコードが150行ほど。 これに対して変更したのが1