本文
頑健な設計のための言語レベル
成層設計の考え方を用いることでプログラムを構成するレベル毎に適した抽象手段を持つことができる。
問2.52 は手の運動なのでパス。
2.3 記号データ
シングルクォートをクォートするオブジェクトの前に置くことで、リストや記号を評価される式としてではなくデータオブジェクトとして扱うことができる
gosh> (define a '(1 2 3)) a gosh> a (1 2 3) gosh> (define s1 'apple) s1 gosh> s1 apple gosh> (define s2 "apple") s2 gosh> s2 "apple" gosh> (define s 'apple) s gosh> s apple
問題解答
問2.53
gosh> (list 'a 'b 'c) (a b c) gosh> (list (list 'george)) ((george)) gosh> (cdr '((x1 x2) (y1 y2))) ((y1 y2)) gosh> (cadr '((x1 x2) (y1 y2))) (y1 y2) gosh> (pair? (car '(a short list))) #f gosh> (memq 'red '((red shoes) (blue socks))) #f gosh> (memq 'red '(red shoes blue socks)) (red shoes blue socks)