関数型ではないけれども、、、 (1/2)


コメントの書き方

コメントは、セミコロン ; をつかって記述します。 ; 以降の行が空白として扱われます。 関連情報は
こちら

処理系によっては 日本語の comment がつかえないおそれがあります。 今回使用している処理系も申し訳ないですが、日本語の表示能力がありません。

> (+ 2 ; comment 
     3 ; comment2 4
     5)
10

逐次実行: begin

逐次実行とは、複数の式が並んでいるものを、順々に評価していき、式の返り値としては 最後の式の値を返すというものです。 途中までの式の値は捨てられます。

純粋に関数型で書いている場合は、このような逐次実行は意味がありません。 つまり、途中までの式が副作用を起こしておらず、またその値も使わないのであれば、 その式自体いらないからです。 ただ、print 文などの副作用を起こしたいときのために紹介しておきます。 ちなみに、教育的配慮からか Advanced Students モード以降でのみ使える 様になっています。利用したい場合は、 ここを見てモード変更して ください。

define cond, case にあった複数の式が並んでいるのは、 基本的にこれと同じものです。

関連情報はこちらを見て下さい。 以下は例です。

> (define (debug-print2 comment value)
    (begin (display comment)
           (display value)
           (newline)
	   value))

プログラムの load

ファイルからプログラムをロードする場合、 load をつかいます。 これによって、ファイル中の式を次々に読み込み評価していってくれます。 これによって、 プログラム中の define が実行されるだけでなく、 例えばプログラム中に display 文をそのまま書いておくと、 これも評価実行されます。 関連情報はこちら
>(load "debug_print.scm")
>
DrScheme では、 あらかじめ definition window に記述(もしくはロード)したプログラムに対して、 Execute ボタンを押せば自動的に load してくれたことになります。
99.9.29/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp