exercise 4.22~24
ex4.22
analyzeにlet->combninationを加えるだけ
(define (let? exp) (tagged-list? exp 'let)) (define (let->combination exp) (let ((bindings (cadr exp))) (cons (make-lambda (map car bindings) (cddr exp)) (map cadr bindings)))) ;;analyzeに以下を追加 ;;((let? exp) (analyze (let->combination exp)))
でいいのかな?
4.23
Alyssaの例だと実行するごとにexecute-sequenceを回して、(null? (cdr pros))とかを毎回チェックしてる。と言うのが無駄なんじゃないかと。
しかしテキストに書いてあるanalyze-sequenceは上手いなぁ・・・
sequentiallyの使い方がおもしろい。
firstに溜め込んでおいて、restのcarを加えていく感じか。
今の自分はこう綺麗にかけるだろうか?
4.24
流石に面倒くさすぎ。つーか時間どうやって測ろう。
timeコマンドとか使えばいいのかな?でもそれだと、(driver-loop)のあとどうしよう。
・・・ちょい考えて無理なら飛ばそうかしら。