LoginSignup
26
17

【2018年3月】SICPを始めるためのScheme処理系準備メモ

Last updated at Posted at 2018-03-20

Rails がメイン言語の会社で SICP 読書会を始めることになったので、参加者の敷居を下げるために Scheme 処理系の準備メモです。1

どの処理系にするか?

Scheme にはたくさんの処理系が存在していて2、最初はちょっと迷いました。

が、Web で調べたり、自社で SICP 読書会をやってる @lagenorhynque さんのおすすめもあって、Racket を使うことにしました。

選んだ理由

  • mac だと homebrew で簡単にインストールできる(弊社のエンジニアは mac ユーザが大多数を占めているので)
  • DrRacket という IDE もついてくるので簡単にインタラクティブな開発が体験できそう3
  • SICP Collection というものが用意されていて、素の Scheme だと大変なところがカバーされているらしい(※ 要出典)

インストール

処理系のインストール

$ brew cask install racket

SICP Collection パッケージのインストール

$ raco pkg install sicp

DrRacket を立ち上げて、コードを入れて Run すると、ちゃんと動くことが確認できます。
これで安心して SICP 読書会を進められそうですね

$ drracket

Untitled_-DrRacket_and_1__tmux___Users_fumitaka_tokumitsu_works_classi_video__tmux.png


DrRacket 使わないよ〜という人向け情報

ミニマムインストール

DrRacket 使わない(全部 console 上の REPL でやる or Emacs & geiger 使う)という人は、以下のように必要最低限インストールしてください。

$ brew install minimal-racket
$ raco pkg install sicp

REPL を開くときに lang: sicp を指定すれば OK

$ racket -I sicp

1__racket___Users_fumitaka_tokumitsu__racket_.png

各種エディタと連携する

Emacs

geiser を使うと Cider や Slime のような感じで開発ができるようになります。

use-package を使っている人は以下の設定を .emacs.d に追加してください

(use-package geiser
  :config
  (setq geiser-active-implementations '(racket)))

その他のインストールは本家サイトをご確認ください
http://www.nongnu.org/geiser/geiser_2.html#Installation

※ minimal-racket だと mzlib/thread が無いといって怒られるかもしれないので、その場合は ↓ のパッケージを入れれば OK

$ raco pkg install compatibility-lib

こんな感じ
Pasted_Image_2018_03_20_19_49.png

マクロ展開もできます
image.png


注意
Emacs 以外はは未検証なのでちょっと調べて見つけたリンクだけ張っておきます...
どなたか編集リクエストで教えていただけるとうれしいです

Vim

Atom

VS Code

  1. カッコが多い言語が好きな方は環境構築するのは苦ではないかもしれませんが...

  2. フムフムヌクヌクアプアアの表紙でおなじみの Gauche や GNU Guile、Chickin、MIT/GNU Scheme など、ちょっと調べるだけでもいっぱいあることがわかります。

  3. 今回は気軽に SICP 学習を進めるられることに重きをおいてます

26
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
17