SICPを読む(3) 問題1.1

まだ手続きの意味がよくわからない。

特殊形式(define,and,not)は手続きではないと書いてあった。ますます意味不明。

それでは、ようやく練習問題。

10        ; 10
(+ 5 3 4) ; 12
(- 9 1)   ; 8
(/ 6 2)   ; 3
(+ (* 2 4) (- 4 6)) ; 6

(define a 3)        ; a
(define b (+ a 1))  ; b
(+ a b) ; 7
(= a b) ; #f
(+ a b (* a b)) ; (+ 3 4 12) -> 19

(if (and (> b a) (< b (* a b)))
     a
     b) ; (if (and #t #t) ...) -> 3

(cond ((= a 4) 6)
      ((= b 4) (+ 6 7 a))
      (else 25)) ; (+ 6 7 a) -> 16

(+ (cond ((> a b) a)
         ((< a b) b)
         (else -1))) ; 4
  • vim上で()範囲デバッグ出来るのでらくちん。GaucheよりMzSchemeを使うかもしれない。
  • ifとcondで括弧の使い方が違うので迷った。まだ括弧に慣れない。

今日のSchemeリンク。

『計算機プログラムの構造と解釈』について

僕のレベルは、まさにコレ。

あんな括弧の多い言語、 IQの高い人間じゃないと理解できないに違いない、そもそも実用性がないんじゃないか

しばらくやった人の言葉。こう言いたい。こうなりたい。

なんでこんなにすごいんだ? 何より楽しい。

そして、神レベル。

えっ? カッコ? あ、そうか。そんなものもあったな。いやあ、 すっかり忘れておったわ

こうなる日はこないだろうな・・・。