• 検索結果がありません。

3

つのステップが繰り返されています。図

2.1

でカーソルのある行をみると、

>

となっています。この表示での >は、

Scheme

処理系のプロンプトです。ここで

Scheme

プログラムを入力すると、その結果が計算され 、画面に表示されます。

Scheme

のプログラムは、すべて式を単位にして記述されます。プログラムの実行も、式

の形で処理系に与えます。

2.4.1 手入力による実行

例として

30+26

を計算する式を実行してみましょう。

Scheme

でこれを表す式は (+ 30

26)となります。

Scheme

でプログラムを実行するときは、最初に開き括弧 ( を書きます。つぎに、実行

するプログラムの名前を書きます。プログラムの名前の後には、そのプログラムに与える データを書きます。そして最後に、閉じ括弧) を書きます。

今の例ですと、プログラム名は+

(

足し算をするプログラム

)

で、20 26がプログラム

に与えるデータ

(

それぞれ数の

20

26)

です。

では、(+ 30 26)を入力してください。もしタイプミスをしたときは、

DEL

キーで文字

の消去できます。入力が終れば 、

C-j (

コントロールキーを押しながら

j

を押します

)

を入

力してください。なお

C-j

は、入力した式の実行を始めなさい、という合図です。

(Scheme

処理系によっては、

DEL

の代わりに

BS

または ( を使うものもあります。また、

C-j

の代わりに

RET

を使うものもあります。

)

> (+ 30 26)

C-j

;Evaluation took 0 mSec (0 in gc) 0 cons work 56

表示について説明します。あなたの入力した部分が (+ 30 26) で 、その次の行に表示さ れている;Evaluation took 0 mSec (0 in gc) 0 cons work は、その計算

(

式の実行

)

にかかった時間などを表しています。その次の行の表示56

(= 30 + 26)

が実行結果です。

実行結果の表示の次の行には、再びプロンプト > が表示されます

:

> (+ 30 26)

;Evaluation took 0 mSec (0 in gc) 0 cons work 56

>

さらに続けて別の式の実行ができます。次の例では 、

4

5

の計算をする式を実行させ ています。

> (* 4 5)

C-j

;Evaluation took 0 mSec (0 in gc) 0 cons work 20

>

上の例では、足し算やかけ算をするプログラムに数そのものを与えただけでした。数の 代わりに別の式を書くこともできます。

> (+ 3 (* 2 4))

C-j

;Evaluation took 0 mSec (0 in gc) 0 cons work 11

この例は、

3+(2

4)

を計算する式です。まず最初に (* 2 4)が計算されて

8

となり、こ

の結果が置き換えられます。その次に

3 + 8

が計算され 、結果

11

を得ます。

以上により、簡単な式の計算を

Scheme

処理系を使ってできるようになりました。

2.4.2 プログラムファイルの読み込み

プログラムが長いと、そのつど 手で入力するのは大変です。プログラムをファイルに書 いておき、それを

Scheme

処理系に読み込ませることもできます。

(

なお、ファイルにプロ

グラムを書く方法は第

7

章で学びます。

)

プログラムファイルを読み込ませることをロード

(load)

といいます。その方法は、次の ように procを使います。

> (load "sum.scm")

C-j

;loading "sum.scm"

;done loading "sum.scm"

;Evaluation took 7 mSec (0 in gc) 77 cells work, 87 bytes other

#<unspecified>

>

ここで "sum.scm"は、プログラムファイルのファイル名です。

2.5 ログアウト

今度はコンピューターの使用を終了する方法を説明します。このことをログアウト

(lo-gout)

といいます。ログアウトをするには、次のように入力してください。

% logout

RET

すると画面には、ログ イン前の表示 login:

になるはずです。これで計算機の使用が終了し 、すべてが済んだことになります。

注意

: Scheme

処理系を終了した後、ログアウト するのを忘れないようにしましょう。

練習問題

下にいくつかの

Scheme

の式があります。それぞれ実行すると、どのような計算結果にな るか考えなさい。そしてそれが正しいか、実行して確かめなさい。

1.

(+ 1 2 3)

2.

(* 4 6)

3.

(- 10 2)

4.

(+ (* 2 3) 4)

5.

(* (+ 1 2) (+ 3 4))

6.

(/ 100 (+ 1 1))

「實は僕たちも、あなた一人をあてにして、さつきからここでお待ちしてゐたのです。

きっとあなたも招待されてゐると思ひましたから。」

「いや、そんなにあてにされると僕も少し困るのだが。」

私たち三人は、力無く笑つた。

太宰治 「不審庵」

『黄村先生言行録』収録 昭和二十二年 日本出版株式会社刊

Scheme 入門 ( 初級編 )

本章ではプログラミング言語

Scheme

の文法の基礎を学習します。出てきた例を

Scheme

処理系で実際に実行し 、動作を確認するようにしてください。例をいろいろ変更して試し てみると、より深く身につきます。

Scheme

プログラムには括弧がたくさんあるので、戸惑うかもしれません。ですが

Scheme

を学んでプ ログラムを書いてゆくうちに 、括弧に対するアレルギ ーが 取れてゆきます。

(NGSCM

Mule

のように、閉じ括弧を入力すると、対応する開き括弧が点滅する機能を

持つテキストエデ ィタを使えば 、括弧を恐れることはありません。

)

3.1 入力 - 評価 - 表示ループと式

Scheme

処理系が起動されると、次のようにプロンプトが出ています。

(Scheme

処理系

によっては、プロンプトが違う場合があります。

)

>

ここで 2001 を入力し 、最後に

C-j (

コントロールキーを押しながら、

j

を押す

)

を入力

します。

(

別の

Scheme

処理系の場合は、

RET

キーの場合があります。

)

> 2001

C-j

すると、 次のような表示になります。

> 2001

;Evaluation took 33 mSec (0 in gc) 45 cons work 2001

>

ここで 2001のように斜体で印刷されている部分が 、

Scheme

処理系のの出力

(Scheme

計算結果

)

です。

25

;Evaluation took 33 mSec (0 in gc) 45 cons work

の行は

NGSCM

特有の表示で、計算に要した時間などを表しています。

(

別の

Scheme

理系ではこの行は表示されなかったり、別のものが表示されているかもしれません。

)

降ではこの行は省略します。

注意

:

実際のシステムでは上記のように斜体で表示はされません。利用者の入力と

Scheme

の出力とが区別がつくように、本書では

Scheme

の出力を斜体で書いています。また、 こ れまでは利用者の入力する部分には下線を引き、最後に

C-j

を書いていましたが 、これ以 降はそれらを省略します。

こんどは 、

3 + 5

の計算をしてみましょう。

Scheme

への入力は 、(+ 3 5) です。前の

章でも説明しましたが 、

Scheme

では

3 + 5

を表すのに (+ 3 5)と、呼び出す実行する手 続き名

(

プログラム名

)

+を書き、手続きに与える

ひきすう

引数

(

パラメーターとも呼ばれます

)

3 5

を書き、それら全体を括弧でくくる、 という書き方をします。なお、+は足し算を計算す る手続きの名前です。

> (+ 3 5) 8

これが実行され 、計算結果

8

が表示されています。

Scheme

処理系は、

1.

入力を受けとり