莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          sicp 3.12 3.13 3.14習題解答

          Posted on 2007-10-18 15:56 dennis 閱讀(455) 評論(0)  編輯  收藏 所屬分類: 計算機科學與基礎
          習題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))

          習題進度落后于讀書進度,殘念。



          主站蜘蛛池模板: 马鞍山市| 溧阳市| 汤阴县| 桃园市| 达尔| 澳门| 涟源市| 蓬安县| 井陉县| 盐城市| 湘乡市| 策勒县| 伊宁市| 万荣县| 新巴尔虎右旗| 南岸区| 渝中区| 县级市| 潜江市| 渝北区| 德化县| 盐城市| 班玛县| 婺源县| 呼和浩特市| 深州市| 化州市| 苏尼特左旗| 新源县| 黑河市| 阿瓦提县| 汉川市| 泸水县| 军事| 商河县| 商城县| 汝阳县| 衡山县| 中方县| 揭阳市| 汕尾市|