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 を触っていたころの記事はこちら