SICP

SICP を読んでみる #55 第二章 pp.82-85

本文

頑健な設計のための言語レベル

成層設計の考え方を用いることでプログラムを構成するレベル毎に適した抽象手段を持つことができる。

問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)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です