この記事を読むのに必要な時間:およそ 0.5 分
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