SICP練習 65 練習2 36

2021-06-28 19:10:07 字數 445 閱讀 4096



練習2.36

雖然accumulate正在變得越來越複雜,但我還並未完全領悟到它的深刻意義。不過直覺告訴對於序列的序列,我們要做的是依次取出它每個序列的第乙個元素。此方法**於網路,我一直都是想著用lambda來寫,最後感覺太複雜了。沒想到乙個map就解決了問題。

lisp

中的高階函式果然不僅僅是函式那麼簡單,它能做的真是太多了。抽象也不是一般的抽象。簡簡單單的乙個(map car seqs)便能把序列中的序列的第乙個元素計算出來。有了這個技巧題目自然就有了答案。

(define (accumulate-n op init seqs)

(if (null? (car seqs))

『()(cons (accumulate op init (map car seqs))

(accumulate-n op init (map cdrseqs)))))

SICP練習 65 練習2 36

練習2.36 雖然accumulate正在變得越來越複雜,但我還並未完全領悟到它的深刻意義。不過直覺告訴對於序列的序列,我們要做的是依次取出它每個序列的第乙個元素。此方法 於網路,我一直都是想著用lambda來寫,最後感覺太複雜了。沒想到乙個map就解決了問題。lisp 中的高階函式果然不僅僅是函式...

SICP練習 7 練習1 11

這種題目太像是數學題目了,不過拿到程式設計上又有一些的難度。我們先根據題目中的條件,寫出類似於第 25頁最下面的變換規則。我們先列出如下內容 a f n 1 f 2 f 3 f 4 f 5 b f n 2 f 1 f 2 f 3 f 4 c f n 3 f 0 f 1 f 2 f 3 於是繼而得出下...

SICP練習 12 練習1 18

練習1.8 和前兩題一樣,依舊是只能用對數步數。而且這個迭代過程要基於加 加倍和折半運算。這乙個習題要用到前面的函式,因此最好的做法是,每次都將寫好的 儲存起來。load test1.18.scm 這行 可以用來載入 而儲存可以用c x,c w。以下是該題的 這次我們寫成塊結構 define x y...