sicp 3.12 3.13 3.14習題解答
習題3.12,append不是改變函數,不會改變x的結構。append!是改變函數,顯然第一個response是(b),第二個就是(b c d)。圖就不畫了,畫了一次太麻煩了。
習題3.13,利用set-cdr!形成環,比較有意思:
(define z (make-cycle (list 'a 'b 'c 'd)))
z在DrScheme上表示為:
#0=(a b c d . #0#)
形象地展示了一個環,顯然運行(last-pair z)將陷入無限遞歸,因為(null? (cdr x))永遠不會為真。
習題3.14,這道題運行下就知道了,是個倒排list的過程,分析下(mystery v)的運行過程:
(loop (a b c d) '())
(loop (b c d) (a '()))
(loop (c d) (b a))
(loop (d) (c b a))
(loop '() (d c b a))
習題進度落後於讀書進度,殘念
文章轉自莊周夢蝶 ,原文發布時間2007-10-18
最後更新:2017-05-17 17:01:51
上一篇:
得到singleton類?
下一篇:
寫一個簡單的工作流(四)資源的處理
25歲Java工程師如何轉型學習人工智能?
談談分布式事務之二:基於DTC的分布式事務管理模型[上篇]
Linux問題情報分享(3):CentOS 7上最新kernel-debuginfo包與內核不匹配導致SystemTap腳本運行失敗
D-News | 洲際旗下12家酒店遭大規模數據泄露 Snap收購以色列明星AR公司
要采購阿裏雲虛擬主機/萬網空間,這些門道你必須知道!
如何查看自己的主機是否安裝了Zend Guard Loader組件
蘋果為什麼要做iPad mini?
人工智能可以為醫療帶來什麼
linux c 進程 pipe 通信代碼分析
一份報告看懂新疆旅遊電子商務發展狀況