Peter Norvig氏による記事の翻訳です。Peter Norvig氏は過去に自然言語処理や人工知能に関する研究を行っており、現在はGoogleの研究部長を務めています。最近ではNorvig氏が著した書籍が『実用Common Lisp』(翔泳社)というタイトルで翻訳されました。
内容はタイトル通り、Pythonにて簡易Lispインタプリタを実装するチュートリアルになっています。記事ではLispの方言であるSchemeの基本的構文をいくつか採用し「Lispy」と名付けています。if文や関数定義、lambda(ラムダ;λ)式などが含まれておりREPLによる対話形式の実行環境もありながらわずか90行程度で実装できています。コード解説は大きく構文解析(parse)と実行(eval)に分かれており、それぞれPythonのコード片を示しながら丁寧に解説しています。
この記事で実装されたLispyは、Lispの重要な概念であるマクロや末尾再帰最適化、継続などは実現できていませんが、これらの機能を追加したバージョンを実装する、いわゆる続編にあたる記事も公開しています。
ちなみに、Hacker Newsのトピック「Ask PG: Lisp vs Python(2010)」にて、Norvig氏はLispとPythonについて意見を述べています。Pythonを「優れたpseudocode(擬似コード)」と評しており、「小さなプログラムにとても向いていてGoogle内やネットにいろんなライブラリがそろっている」ため、最終的にPythonを選択するようになったようです。また「大規模だったり速度が必要なプロジェクトはLispのほうが有利だと信じている。しかし、主なる目的が大学生を相手にした教育などの意志疎通ではPythonのほうが優位だと思う」とも述べています。
URL:http://www.aoky.net/articles/peter_norvig/lispy.htm