情報科学概論IIA
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/Joka2a-1998/1998-06-02
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
Scheme の処理系が変わりました。
今までの scheme 48 から Dr.Scheme に。
sin, cos も問題なく動きます。
先週の課題(教科書31ページ〜33ページの「4.5演習問題」)のチェック・
ポイント
予想と違っていた所がちゃんと分かるように書くこと。
処理系が変わったので、let の動きが少し違うようです。同じ変数を何度か定
義するとエラーになるようです。
let は、lambda でかけます。
変数のスコープという考え方を身に付けるように。
「同時」というのとは少し違います。
スコープの問題です。let だと、外側の
x が使われ、let* だと、同じ並びの左の x が使われます。
let や lambda では、束縛された変数という考え方があります。
lambda には、quote と同じように、本体の評価を止める機能があります。
次の結果を考えてみてください。
(define f (lambda (x) x))
(f 10)
(f f)
-x と書いても、負の数は得られません。Lisp では、(- x) と、- という手続
きを呼びます。- には、1引数のもの(符号を反転させる)と2引数のもの
(引き算)があります。
mycadr という手続きを定義してください。
(define (mycadr x) ...... )
あるいは、
(define mycadr (lambda (x) ...... ))
教科書62ページ〜52ページの「6.7演習問題」のうち、
1. 〜 5. をやりなさい。
時間内にできたものについて、プログラムと実行結果を次のような電子メール
で送りなさい。
To: yas
Subject: [joka2a] enshuu-6.7
余裕がある人は、「6.7演習問題」の他の問題に進みなさい。
Last updated: 1998/06/02 13:32:24
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>