人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Common Lispで、他のすべてのオペレータを実装できる、最小限のオペレータセットを教えてください。
以前、ポール・グレアム氏が言及していたサイトをみかけたような気がしますが、見つけられませんでした。

●質問者: hu2
●カテゴリ:コンピュータ
✍キーワード:Common Lisp オペレータ サイト ポール・グレアム
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● dev_zer0
●35ポイント

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 (スタンダードテキスト)

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

◎質問者からの返答

ありがとうございます。

参考になりました。


2 ● lionfan
●50ポイント ベストアンサー

技術野郎の復讐---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にこの姿を与えたのは、まさにそのためだったからだ。

◎質問者からの返答

まさにそれでした。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ