リスト修行

リストについての理解が足りていないような気がする。リスト修行 - /var/log/messagesを見てたら僕も修行したくなったので、リスト修行に励んでみたい。

リストを作ろう 練習問題 1

Scheme 入門 3. リストを作ろうより。

絶対間違えないという決意を胸に・・・。

gosh> (cons "hi" "everybody")
("hi" . "everybody")
gosh> (cons 0 '())
(0)
gosh> (cons 1 (cons 10 100))
(1 10 . 100)
gosh> (cons 1 (cons 10 (cons 100 '())))
(1 10 100)
gosh> (cons #\I (cons "saw" (cons 3 (cons "girls" '()))))
(#\I "saw" 3 "girls")
gosh> (cons "Sum of" (cons (cons 1 (cons 2 (cons 3 (cons 4 '())))) (cons "is" (cons 10 '()))))
("Sum of" (1 2 3 4) "is" 10)

うはぁ〜かなりドキドキしますね。

リストを作ろう 練習問題 2

回答はコメントに。

gosh> (car '(0)) ; 0
0
gosh> (cdr '(0)) ; ()
()
gosh> (car '((1 2 3) (4 5 6))) ; (1 2 3)
(1 2 3)
gosh> (cdr '(1 2 3 . 4)) ; (2 3 . 4)
(2 3 . 4)
gosh> (cdr (cons 3 (cons 2 (cons 1 '())))) ;  (2 1)
(2 1)


修行はまだまだ続く。