莊周夢蝶

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

          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不能定義成特殊形式,僅在定義成過程的情況下有效,我想像不出此場景。


          主站蜘蛛池模板: 宜兰县| 集安市| 祁东县| 南江县| 溆浦县| 苍南县| 鄯善县| 石台县| 县级市| 龙海市| 新乡县| 罗田县| 潮州市| 桂平市| 谷城县| 株洲县| 海南省| 阳西县| 铜陵市| 正蓝旗| 迭部县| 宣汉县| 奉化市| 湾仔区| 名山县| 手游| 甘洛县| 吉安县| 子长县| 吉林省| 永城市| 都安| 新建县| 鹿邑县| 花垣县| 东兴市| 米泉市| 察隅县| 元朗区| 房产| 唐海县|