Modern Common Lisp

Introduction of Modern Common Lisp.

Latest articles

第1回 Common Lisp処理系のインストール

同僚の深町さんと「モダンCommon Lisp」シリーズを初めることになりました。今回はCommon Lisp処理系のインストール方法について解説します。どの処理系を使うかCommon Lispには処理系が多数存在するため、プログラミングを初める前に、まずどの処理系を使うか決めなくてはなりません。商用ならAllegro CLでほぼ一択のようですが、お金がかかりますし、プロプライエタリソフトウェアですから、今回は候補から除外します。無料で手に入る(フリーな)処理系としてはSBCLが有名です。多くのライブラリでサポートされている処理系であり、コンパイラの品質が高い(速いコードが生成される)という強みを持っていますが、スレッドサポートがかなり怪しいらしく(未確認)、またコンパイルに非常に時間がかかるという問題を持っています(開発のテンポに影響)。SBCL以外には、例えばCLISPなどがありますが、今回は深町さんに教えてもらったClozure...

第2回 Quicklispによるライブラリ環境

 Common Lispのライブラリを利用するのに、以前はASDF-Installを使っていました。しかし、ASDF-Installは外部のシェルコマンドに依存するためWindowsでの利用が面倒だったり、接続先のサーバが落ちていてダウンロードできなかったり、ダウンロードできたとしてもビルドできないといったことが多くありました。  これを解決するためにZach Beaneが開発したのがQuicklispです。現在BETA公開中で、いくつか制限事項はありますが、誰でも利用できるようになっています。 Quicklisp BETA セットアップ  まずはQuicklisp自身をインストールします。以下のリンクからQuicklispをダウンロードしてください。 Quicklispをダウンロードする あなたのLisp処理系...

第3回 SLIMEの使い方 基礎編

前回はQuicklispによるライブラリ管理について説明しました。今回はSLIMEの 基本的な使い方について説明します。 SLIMEとは SLIMEは(Common) Lispのための統合開発環境(IDE)です。他のIDEとは異なり、 対話的にプログラムを構築できるのが特徴です。一度ハマれば他の開発環境は 使えなくなるでしょう。詳しい情報は次のURLを参照してください。 http://common-lisp.net/project/slime/ インストールと設定 SLIME SLIMEのCVSスナップショット(本家推奨)をインストールします。OSは GNU/LinuxやMac OS XなどのUNIX系OSを想定しています。 $ wget http://common-lisp.net/project/slime/snapshots/slime-current.tgz$...

第4回 Common Lispライブラリガイド

 さて、Modern Common Lispはこれで4回目です。環境構築も完成に近づき、Common Lispでプログラムを始められる状態になりつつあります。ブログの主題も環境構築から実践へと移ります。  今回はCommon Lispでプログラムを書く際によく必要になるであろうライブラリの紹介です。Common LispはSchemeと比べると仕様の大きな言語には違いありませんが、最近普及しているPythonなどに比べると標準ライブラリも小さいです。そのため、適切なライブラリを適切に使用するという能力は、他の言語以上にCommon Lispで必要になるでしょう。  ここで紹介するライブラリはすべてQuicklispに入っているのですぐ利用できます。まだインストールしていない人は以下のエントリを参考にインストールしてください。...

第5回 SLIMEの使い方 開発サイクルについて

前々回の「基礎編」 ではSLIMEのインストール方法とその基本的な使い方について説明しましたが、 具体的にどのように開発したら良いか分からないと思います。今回はその補足 としてSLIMEにおける開発サイクルについて説明します。 SLIMEにおける開発サイクル SLIMEにおける開発サイクルは基本的には次のようになります。 M-x slimeでSLIMEを起動lispファイルを編集REPLバッファで動作確認2に戻る一般的な開発サイクルには「コンパイル」とか「アプリケーションの再起動」 というタスクがありますが、SLIMEの開発サイクルにはそれがありません。その 代わりSLIMEには、アプリケーションへの変更を即座に反映させる仕組みがあり ます。これにより、待ち時間を極力短縮して、またエディタとターミナルを行...

第6回 Common Lispライブラリを書く

 僕のブログで「Modern Common Lispはターゲットをどこに置いているのか」という質問をいただきました。最初は環境構築から始まっており、初心者向けに見えますが、次はHello, Worldもせずにライブラリの解説をしています。  Modern Common Lispのターゲットは、これからのCommon Lispを学びたい人です。当初はこの連載を読めばCommon Lispについてのすべてを学べるAll-In-One形式にしようと考えていたのですが、それでは時間がかかりすぎてしまうため、いくつかの過程を省いて進めます。たとえば、Lispでは必要なリスト処理などはここでは解説しません。理由は、それを学ぶための書籍が既に多く存在するからです。Common Lispの基本文法はそれらの書籍を参照してください。この連載は、Common...

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!