なぜ Lisp なのか
Quote...Unquote
- ダグラス・R. ホフスタッター著, 竹内郁雄ほか訳『メタマジック・ゲーム』
ミンスキー「ゲーデルは Lisp を思いついておくべきだった。もし彼が Lisp を思いついていたならば彼の不完全性定理の証明はもっと簡単なものになっていただろう」
ゲーデルの証明の一番難しいところは、数学的体系に自分自身を語らせるところにある。天才のひらめきが何段階か必要になる。しかし、Lisp は、少なくともゲーデルが必要としていた意味で、まさに自分自身を直接語ることができる。
ゲーデルは Lisp を発明した!
- ダイクストラ「謙虚なるプログラマ」
LISPは冗談まじりに「コンピュータを誤用するための、もっとも知的な方法」と言われることがありますが、私はこれはすばらしい褒め言葉だと思います。なぜならこれはあらゆる種類の自由を可能にしているからです。LISPは私たち人類のうちもっとも才能ある人々が、それまでは不可能だったような方法で思考することを支援してきました。
- 和田英一「Lisp へのこだわり」
Lisp に夢中なのは一部の変人だけなのかもしれない。
- Eric S. Raymond 著, 山形浩生訳「ハッカーになろう」
LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。
- まつもとゆきひろ「Let's Talk Lisp」
Lisp はいつも時代の最先端に位置している
- Paul Graham
- Lisp がそんなにすごいなら
Lisp がそんなにすごいなら、どうしてもっとたくさんの人が使わないんだろう。最近の講演で、こんな質問を聴衆の学生から受けた。もちろんそれが初めてじゃない。
- 普通のやつらの上を行け(『ハッカーと画家』に収録)
Lisp のプログラムコードは Lisp のデータオブジェクトから出来ている。それは、ソースコードは文字列で出来ていて、文字列は言語でサポートされている、というようなつまらない意味じゃない。
- Lisp がそんなにすごいなら
- Greenspunの第10規則
全ての十分に複雑な C もしくは Fortran プログラムは、後付けの、不完全な仕様とバグを持ち、遅い、Common Lisp の半分の実装を含んでいる。
- Exploring the Code of Creativity(絵を描くプログラム AARON については、『コンピュータ画家アーロンの誕生』を参照)
(絵を描こうとする場合に用いる膨大なルールは)C のような言語では表現不可能だった。
処理系
Common Lisp
Scheme
Emacs Lisp
References
- Common Lisp HyperSpec
- Guy L. Steele Jr. Common Lisp the Language, 2nd Edition(日本語訳)
- Franz Inc Product Documentation
- GNU Emacs Manual(書籍版。Info でも読める)
- GNU Emacs Lisp Reference Manual(書籍版。Info でも読める)
- Emacs-20 Reference Card
- アルゴリズム言語Schemeに関する第五改訂報告書
SICP
Peter Norvigによれば、コンピューター・サイエンスの最高の入門書
。
- Harold Abelson and Gerald Jay Sussman with Julie Sussman. Structure and Interpretation of Computer Programs second edition
- オンライン版
- 6.001 Structure and Interpretation of Computer Programs
- 日本語訳(和田英一訳)(HTML版)
- 日本語訳(真鍋宏史訳)
重要人物
John McCarthy
- Recursive Functions of Symbolic Expressions and their Computation by Machine (Part I). 1960. 原典!
- A Basis for a Mathematical Theory of Computation. 1961.
- LISP 1.5 Programmer's Manual. 1962.(Google)
Peter Norvig
- Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp(GitHubでの全文公開,日本語訳)
- Artificial Intelligence: A Modern Approach(サポートサイト。日本語訳(第2版))
- Lisp as an Alternative to Java
- Tutorial on Good Lisp Programming Style
- Design Patterns in Dynamic Languages
- 大規模なウェブサービス、そしてそれらを構築するプログラミング言語
なぜLispは誰もが大好きな言語ではないのか? なぜ誰もが全てに対してLispを使うわけではないのか? なぜLispはGoogleでは使われていないのか?
- Lisp プログラマのための Python 入門
Gregory. J. Chaitin
- The Unknowable (Lisp によるゲーデル・チューリング・チャイティンの不完全性定理の記述。日本語訳)
- The Limits of Mathematics (日本語訳)
Paul Graham
Peter Norvig によれば、Lisp の本の中では、Paul Graham の On Lisp(全文公開)(日本語訳,日本語の草稿(全文公開))と ANSI Common Lisp(日本語訳)がベスト
。
Hackers & Painters(日本語訳)
訳者のウェブサイトで読めるものもある(本に収録されなかったエッセイも読める)。
- メイド・イン・USA(原文)
- どうしてオタクはもてないか(別訳:オタクが人気者になれない理由)
- ハッカーと画家
- 口にできないこと
- 天邪鬼の価値(原文)
- もうひとつの未来への道
- 富の創りかた
- 格差を考える
- スパムへの対策
- 続編:「ベイジアンフィルタの改善」
- 続続:「反撃するフィルタ」
- ものつくりのセンス
- プログラミング言語入門
- 百年の言語
- 普通のやつらの上を行け
- オタク野郎の復讐
- 夢の言語
- デザインとリサーチ
- 素晴らしきハッカー
その他
- Kahua プロジェクト『プログラミングGauche』
- Shibuya.lisp
- Leon Bambrick「Lispの真実」
- 竹内郁雄『初めての人のためのLISP』増補改訂版
- Guy L. Steele Jr. and Richard P. Gabriel. The evolution of Lisp. 1996.(日本語訳)
- Guy L. Steele Jr. Scheme 過去◇現在◇未来 前編
- The Common Lisp Cookbook
- Peter Seibel. Practical Common Lisp(日本語訳)
- John Hughes「なぜ関数プログラミングは重要か」
- David Cooper, Jr. Basic Lisp Techniques.
- 犬飼大『入門Scheme』
- 亀井信義・舘野信行『GNU Emacs ガイドブック』
- Robert J. Chassell. Programming in Emacs Lisp(日本語)
- LISP 情報源
- プログラミング言語Scheme
- Practical Scheme
- Doug Hoyte. LET OVER LAMBDA Edition 1.0(日本語訳)
- 拙文「不完全性定理の Lisp, Mathematica による記述」