濃縮還元オレンジニュース

((Pythonで書く(Lispインタプリタ)

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のほうが優位だと思う」とも述べています。

URLhttp://www.aoky.net/articles/peter_norvig/lispy.htm

おすすめ記事

記事・ニュース一覧