情報科学概論IIA
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/Joka2a-1998/print
/run-scheme.html
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
情報科学概論IIA では、Lisp の一種 Scheme (スキーム) を使って記号
(symbol)を扱うプログラミング、セル、再帰、高階関数といったことを学びま
す。
この講義では、scheme の処理系として、対話的に用いるインタプリタを使い ます。情報科学概論IAで使ったC言語では、エディタでプログラムを書いたら、 cc コマンドでコンパイルして、実行しました。
講義で使う scheme 処理系は、インタプリタなので、コンパイルする必要はあ りません。次のように、インタプリタを実行して、手続きを打ち込めばすぐに 実行できます。% cc hello.c% a.out
hello %
![]()
---------------------------------------------------------------------- % schemeWelcome to Scheme 48 0.46 (made by guest on 1998年 2月17日(火曜日) 14時48分53秒 JST ). Copyright (c) 1993, 1994 by Richard Kelsey and Jonathan Rees. Copyright (c) 1996 by NEC Research Institute, Inc. Please report bugs to scheme-48-bugs@martigny.ai.mit.edu. Type ,? (comma question-mark) for help. > 1)
1 > (+ 1 2)
3 > (* 3 4)
12 > (+ 1 2 3)
6 > (+ (* 2 2) (* 3 3))
13 > (define (hello msg))
(display "hello ")
(display msg)
(newline)
> (hello "world")
hello world > ^D
Exit Scheme 48 (y/n)? y
%
----------------------------------------------------------------------
.scm」にします。すると、mule で scheme を編集する時に
便利です。
---------------------------------------------------------------------- (define (hello msg) (display "hello ") (display msg) (newline)) ----------------------------------------------------------------------
kterm の場合(kterm の中で mule -nw で mule を実行た時):
これで、scheme インタプリタが mule の1つのウィンドウ(バッファ)の中 で走ります。この状態では、mule の編集機能、カーソル移動などの機能が使 えるので便利です。ESC x run-scheme![]()
mule の中で scheme インタプリタを実行しながら作ったプログラムは、 mule のコピー&ペースト機能を使って別のファイルに保存します。
(load) 手続きの引数は、プログラムを保存したファイルの名前(この例では、 hello.scm)です。> (load "hello.scm")