A Road to Common Lisp という 2018 年の記事を読んだ
https://stevelosh.com/blog/2018/08/a-road-to-common-lisp/#s13-a-gentle-introduction
1ページの長い記事で Common Lisp への入門からハッキングまで語り尽くしていたすばらしい記事で、これをよんで Common Lisp を触りはじめてみないのはむずかしい!
はじめてのユーザーにすすめる実装として CCL (ClozureCL) と SBCL (Steel Bank Common Lisp) のふたつが名指されている。 MacOS で GUI がほしければ ClozureCL がおすすめ、それ以外であれば SBCL がいいと。で、 SBCL を手に入れた。
$ brew info sbcl
と探してみるとみつかったので Homebrew でインストールする
$ brew install sbcl
SBCL を起動してさっそく書き始めてみる。括弧を先にタイプするやりかたで (ZEROP 0)
と REPL に打ち込もうとすると… ()^BZEROP 0
と表示されてしまう。まあ Control-B のキーボードショートカットが効かないみたいだ。
$ sbcl
This is SBCL 2.4.4, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* ()^BZEROP 0
これがちょっと不便だけれど、たまに遭遇するんだよなあ、たしか Scheme をやっていたころもこんな感じだったから REPL はほとんど使わずにエディタで編集したのを REPL で読み込ませるみたいにしていたんだった。でもここでは A Road to Common Lisp にすごく便利な助言が書いてあるのを読んだ。
If your arrow keys and backspace don’t work in the REPL, use
rlwrap
to fix that.rlwrap
sbcl will give you a non-miserable REPL.rlwrap
is a handy tool to have in your toolbox anyway.
というので rlwrap を探してみる。ふたたび Homebrew で探してみる。
$ brew info rlwrap
もうはいっていたみたいなのでそのまま使ってみる
$ rlwrap sbcl
This is SBCL 2.4.4, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (ZEROP 0)
T
これで readline がうまく効いてキーボードショートカットが機能するようになった! そしてこれにて環境構築はおわり。
このあとは A Gentle Introduction to Symbolic Computation という最初のテキストを手に入れて、読んでいってみる。
何年か前に Scheme を触っていたころの記事はこちら