1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MacでScheme48を動かす

Last updated at Posted at 2020-05-07

始めに

Scheme とは関数型言語 LISP の方言の1つであり、Scheme 処理系の1つに Scheme48 がある。
Scheme48 を Mac で使うための情報が少なかったため、まとめておく。

Homebrew のインストール

まず Homebrew をセットアップしておく。
Homebrewのインストールから操作まで

Scheme48 のインストール

ターミナルを立ち上げて、下記のコードを実行する。

terminal
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

完了したら、これでインストール。

terminal
$ brew install scheme48

プログラムの実行と終了

さっそく Scheme48 を動かしてみよう。

terminal
$ scheme48
Welcome to Scheme 48 1.9.2 (made by brew on 2019-10-14)
See http://s48.org/ for more information.
Please report bugs to scheme-48-bugs@s48.org.
Get more information at http://www.s48.org/.
Type ,? (comma question-mark) for help.
> (define x 3)
; no values returned
> x
3

プログラムを終了するには ,exit と入力する。
この記載が中々見当たらず、初めの頃は Ctrl+D とか exit() などあれこれ試していた。

terminal
> ,exit

外部ファイルの読み込み

ターミナルで .scm.sch といった拡張子の外部ファイルを読み込むには、scheme48 を起動した後に load関数の引数にファイルを指定する。

terminal
$ scheme48
Welcome to Scheme 48 1.9.2 (made by brew on 2019-10-14)
See http://s48.org/ for more information.
Please report bugs to scheme-48-bugs@s48.org.
Get more information at http://www.s48.org/.
Type ,? (comma question-mark) for help.
> (load "hoge.scm")

その他

Atom で Scheme48 を利用する上で便利なパッケージを紹介する。

ターミナル

ターミナルを入れるとエディタ内でコーディングから実行までを完結させることができる。
代表的なものは Platformio-ide-terminal で、拡張性も高く便利。

シンタックスハイライト

language-scheme というパッケージをインストールすると、 .scm.sch などのファイルを開いた時にシンタックスハイライトが有効になる。
なお schene-syntax というパッケージもあるが、なぜかハイライトが有効にならない。

参考資料

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?