• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            CG@CPPBLOG

            /*=========================================*/
            隨筆 - 76, 文章 - 39, 評論 - 137, 引用 - 0
            數(shù)據(jù)加載中……

            我的SICP習(xí)題答案(2.17~2.23)

            2.17

            (define (last-pair lst)
              (if (null? (cdr lst))
                  (cons (car lst) ())
                  (last-pair (cdr lst))))

            2.18


            (define (reverse lst)
              (define (iter lst-o lst-d)
                (if (null? lst-o)
                    lst-d
                    (iter (cdr lst-o) (cons (car lst-o) lst-d))))
              (iter lst null))

            2.20

            (define (same-parity x . lst)
              (define (filter lst ok?)
                (if (null? lst)
                    ()
                    (if (ok? (car lst))
                        (cons (car lst) (filter (cdr lst) ok?))
                        (filter (cdr lst) ok?))))
              (if (even? x)
                  (cons x (filter lst (lambda(x) (= 0 (remainder x 2)))))
                  (cons x (filter lst (lambda(x) (= 1 (remainder x 2)))))))

            2.21

            (define (square-list- items)
              (if (null? items)
                  ()
                  (cons (* (car items) (car items))
                        (square-list- (cdr items)))))

            (define (square-list items)
              (map (lambda(x) (* x x)) items))

            2.22

            第一種每次取出首元素平方后前插到新表,象reverse過程類似,所以是反的。
            第二種只不過是把新表前插到元素前,得到的甚至不是一個list,而是
              ((((() . 1) . 4) . 9) . 16)

            2.23

            (define (for-each proc items)
              (if (not (null? items))
                  ((lambda() (proc (car items))
                   (for-each proc (cdr items))))))

            posted on 2008-06-11 22:56 cuigang 閱讀(867) 評論(2)  編輯 收藏 引用 所屬分類: Lisp/Scheme我的SICP答案

            評論

            # re: 我的SICP習(xí)題答案(2.17~2.23)  回復(fù)  更多評論   

            2.17有個錯誤
            (define (last-pair lst)
            (if (null? (cdr lst))
            (cons (car lst) ())
            (last-pair (cdr lst))))
            ()改為'()
            2009-01-25 11:12 | soma

            # re: 我的SICP習(xí)題答案(2.17~2.23)  回復(fù)  更多評論   

            (define (same-parity x . lst)
            (define (filter lst ok?)
            (if (null? lst)
            ()
            (if (ok? (car lst))
            (cons (car lst) (filter (cdr lst) ok?))
            (filter (cdr lst) ok?))))
            (if (even? x)
            (cons x (filter lst (lambda(x) (= 0 (remainder x 2)))))
            (cons x (filter lst (lambda(x) (= 1 (remainder x 2)))))))

            我嘗試著用簡單的遞歸辦法:

            (define (same-parity? x y)
            (or (and (even? x) (even? y))
            (and (odd? x) (odd? y))))

            (define (same-parity x . y)
            (cond ((null? y) '())
            ((same-parity? x (car y)) (cons (car y) (same-parity x (cdr y))))
            (else (same-parity x (cdr y)))))

            (same-parity 1 2 3 4 5 6 7)

            然而在做調(diào)用(same-parity x (cdr y)) 時出錯了,問題是參數(shù)表把(cdr y)這個表當(dāng)作參數(shù)表的第一個值,即((2 3 4 5 6 7)), 有什么辦法可以解決這個問題么?
            2009-02-09 18:33 | mabusyao
            久久久无码人妻精品无码| 国产香蕉久久精品综合网| 久久香综合精品久久伊人| 狠狠色伊人久久精品综合网| 97久久超碰成人精品网站| 国产一久久香蕉国产线看观看 | 久久w5ww成w人免费| 精品无码久久久久国产动漫3d| 蜜臀久久99精品久久久久久| 久久久久久久久久免免费精品 | 国产成人精品综合久久久| 久久中文字幕一区二区| 99久久国产亚洲高清观看2024| 国产精品亚洲美女久久久| 欧美激情精品久久久久久久| 人妻精品久久久久中文字幕| 久久久久国产精品嫩草影院| 午夜精品久久久久久久| 国产精品久久亚洲不卡动漫| 狠狠人妻久久久久久综合蜜桃| 一本久久免费视频| 久久久久AV综合网成人| 久久精品国产亚洲Aⅴ蜜臀色欲| 亚洲国产精品狼友中文久久久| 新狼窝色AV性久久久久久| 日本精品久久久久中文字幕8| 欧洲性大片xxxxx久久久| 久久综合亚洲欧美成人| 国产精品成人99久久久久91gav| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | a高清免费毛片久久| 久久综合九色综合久99| 奇米综合四色77777久久| 精品久久人人做人人爽综合| 久久精品国产精品亚洲精品| 91久久国产视频| 久久久久久久久久久久中文字幕| 2020最新久久久视精品爱 | 精品人妻伦一二三区久久| 18岁日韩内射颜射午夜久久成人| 老司机国内精品久久久久|