Common Lispで、他のすべてのオペレータを実装できる、最小限のオペレータセットを教えてください。

以前、ポール・グレアム氏が言及していたサイトをみかけたような気がしますが、見つけられませんでした。

回答の条件
  • 1人2回まで
  • 登録:2008/02/14 12:33:46
  • 終了:2008/02/14 17:00:00

ベストアンサー

id:lionfan No.2

lionfan回答回数109ベストアンサー獲得回数202008/02/14 16:42:41

ポイント50pt

技術野郎の復讐---Revenge of the Nerds---

http://practical-scheme.net/trans/icad-j.html

の前半4割目くらいに出てくるやつですかね。

(Lispの意味での)マクロは、私の知る限り依然としてLispに特有のものだ。たぶん、マクロを持つためには言語をLispと同じような奇妙な外見にしないと駄目だからだろう。それにまた、マクロという最後の力を加えたら、それは新しい言語ではなくLispの新しい方言になってしまうからだろう。

私はよくジョークでそういうことを言うのだが、実際それは真実なんだ。 car、cdr、cons、quote、cond、atom、eq、そして関数をリストで表現する方法を備えた言語があれば、あなたはLispの残り全てをそれで構築することができる。これがLispの質を定義しているんだ。McCarthyがLispにこの姿を与えたのは、まさにそのためだったからだ。

id:hu2

まさにそれでした。

ありがとうございました。

2008/02/14 16:59:20

その他の回答(1件)

id:dev_zer0 No.1

dev_zer0回答回数332ベストアンサー獲得回数252008/02/14 14:08:29

ポイント35pt

http://ja.wikipedia.org/wiki/LISP

の「3. 最小のLISP」を見ると8個ほどありますが、個人的には


・car リストの先頭の要素を取り出す

・cdr 先頭の要素を取り出したあとの残りのリストを返す

・cons リストの先頭に要素を一つ挿入

・eq 二つの引数が同じものであるか否か

・atom 引数がアトムであるか否かを調べる

の5個さえあれば何とかなると思っています

# ま、defunとかないと不便だとは思いますが...


グレアム氏は「ANSI Common Lisp」の著作者でもありますので、

下記の本に記載されているかもしれません

ANSI Common Lisp (スタンダードテキスト)

ANSI Common Lisp (スタンダードテキスト)

  • 作者: ポール グレアム
  • 出版社/メーカー: ピアソンエデュケーション
  • メディア: 単行本

id:hu2

ありがとうございます。

参考になりました。

2008/02/14 16:58:08
id:lionfan No.2

lionfan回答回数109ベストアンサー獲得回数202008/02/14 16:42:41ここでベストアンサー

ポイント50pt

技術野郎の復讐---Revenge of the Nerds---

http://practical-scheme.net/trans/icad-j.html

の前半4割目くらいに出てくるやつですかね。

(Lispの意味での)マクロは、私の知る限り依然としてLispに特有のものだ。たぶん、マクロを持つためには言語をLispと同じような奇妙な外見にしないと駄目だからだろう。それにまた、マクロという最後の力を加えたら、それは新しい言語ではなくLispの新しい方言になってしまうからだろう。

私はよくジョークでそういうことを言うのだが、実際それは真実なんだ。 car、cdr、cons、quote、cond、atom、eq、そして関数をリストで表現する方法を備えた言語があれば、あなたはLispの残り全てをそれで構築することができる。これがLispの質を定義しているんだ。McCarthyがLispにこの姿を与えたのは、まさにそのためだったからだ。

id:hu2

まさにそれでした。

ありがとうございました。

2008/02/14 16:59:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません