2009年7月13日月曜日

【AIMAメモ】PrologとLisp

論理プログラミングをやろうと思ったら、Prologはひとつの選択肢だろう。

Prologの処理系を使うというのもあるが、別の言語をメインで使っていて、一部論理プログラミングを使いたいとする。

そうするとそのホスト言語でProlog的なものを実装するわけだが、そのとき、

  • 実装が楽であり、
  • 実装したものを使う際にホスト言語と似ていて使いやすい

ということが大事だろう。すると例えばCとCommon LispをくらべるとCommon Lispの方が適していると思う。

ではRubyだとどうだろう?
結構いけそうな気がする。しかし、記号(Symbol)の取扱いがCommon Lispの方が統一的かつ簡易なので、Common Lispの方が楽だろう。(Rubyはあまりくわしくないので間違いかも)

PrologとLispのつながりというのはこの程度じゃないかなぁ。

もしかしたら、もっとあるのかもしれないが、今のイメージはこんな感じ。


とりあえず、これにて、今回の「AIMAかじり」は終了しよう。
AIMAは別の機会にがっつりやりたい。

次は、今回習得したPrologとAIMAの知識を利用して、PAIPのProlog実装とその利用をちゃんと理解するステップに入ろう。

0 件のコメント: