莊周夢蝶

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

          sicp 4.2.1兩題

          Posted on 2008-10-31 23:12 dennis 閱讀(456) 評論(0)  編輯  收藏 所屬分類: 計算機科學與基礎

          4.25,如果在scheme解釋器的應用序求值下,unless定義為一個過程,那么
          (* (factorial (- n 1))
          將無窮遞歸下去。如果在正則序時,由于延時求值,僅當需要計算時才求值此表達式,不會造成無窮遞歸,在1的時候正常結束遞歸。

          4.26,在上一節求值器的基礎上定義unless的語法形式還是很簡單的,
          首先在analyze過程添加分析unless:
           ((unless? exp) (analyze (unless->if exp)))

          然后定義unless?和unless->if

          (define (unless? exp)
            (tagged
          -list? exp 'unless))
          (define (unless->if exp)
            (make
          -if (cadr exp) (cadddr exp) (caddr exp)))

          最后一問,構造一個unless與高階函數聯合使用的場景,在此場景下,unless不能定義成特殊形式,僅在定義成過程的情況下有效,我想像不出此場景。


          主站蜘蛛池模板: 孟连| 上思县| 哈密市| 叶城县| 柳江县| 淄博市| 临洮县| 浠水县| 沭阳县| 南阳市| 汨罗市| 施甸县| 渝北区| 曲水县| 天等县| 邵东县| 广宁县| 长垣县| 景德镇市| 慈溪市| 东宁县| 香河县| 伽师县| 乐山市| 西乌珠穆沁旗| 南澳县| 客服| 射洪县| 方正县| 德格县| 右玉县| 夏津县| 长白| 灵川县| 丰台区| 盖州市| 武定县| 湟源县| 延寿县| 溧阳市| 鸡东县|