sicp

    13熱度

    3回答

    我剛剛開始覺得我對使用lambda在球拍和方案中的使用有一個模糊的理解,當我遇到下面的'cons'和'car'的替代定義SICP (define (cons x y) (lambda (m) (m x y))) (define (car z) (z (lambda (p q) p))) (define (cdr z) (z (lambda (p q) q)))

    0熱度

    1回答

    SICP第5.4節開發了一個用匯編寫成的評估者,但我不明白爲什麼他們稱之爲顯式控制評估者。

    2熱度

    2回答

    我正在通過SICP工作。關於米勒 - 拉賓測試的練習1.28。我有這個代碼,我知道是錯誤的,因爲它沒有遵循這個練習的結果。 (define (fast-prime? n times) (define (even? x) (= (remainder x 2) 0)) (define (miller-rabin-test n) (try-it

    2熱度

    1回答

    在方案中,新的多重功能: (define (iter b a n) (cond ((= b 0) n) ((even? b) (iter (/ b 2) (* 2 a) n)) (else (iter (- b 1) (/ (* a b) (- b 1)) (+ a (* a (- b 1))))))) (define (mul b a) (it

    0熱度

    2回答

    這個問題可以在http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.37 發現的問題是擴張的持續分數以便接近披。這意味着你的程序應該能夠通過評估計算披: (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k) 我的解決方案如下: (define

    1熱度

    2回答

    我寫了一個相對簡單的銀行帳戶函數,但是當我嘗試運行它時,出現TypeError,我不確定爲什麼?這是SICP的直接,所以解決方案很容易獲得,我只想了解爲什麼我的答案會產生這種錯誤。有什麼想法嗎?這裏是我的代碼: (define (make-password-account balance password) (define (withdraw amount) (if (>=

    5熱度

    1回答

    這是一個與SICP Book Chapter 3.5.2有關的問題。 我正在用其他編程語言實現流數據結構。而且我不確定是否正確理解以下代碼段。 (define (integers-starting-from n) (cons-stream n (integers-starting-from (+ n 1)))) (define integers (integers-starting-

    2熱度

    1回答

    我知道functional programming有幾個定義。我認爲這是一個模糊的類別。我的個人定義接近'referential transparency'。 這個問題不是'函數式編程的定義是什麼?'。我們的假設是,我們所知道的功能性編程是一些不同界限的不同概念的抓包。 現在很神奇的書Structure and Interpretation of Computer Programscontains

    3熱度

    1回答

    我正在使用mit-scheme來通過SICP,昨天,我做了一些愚蠢的事情,並且我想知道是否有方法從它恢復,而不關閉REPL,然後開始再一次。 如果我定義一個非工作過程,使用與原始相同的名稱並打破一切,是否有一種'取消定義'的方法? (define (+ a b) (...junk)) 我想'undefine'這個'+'並繼續原來的。

    1熱度

    1回答

    我覺得SICP的視頻講座比書本更容易。這是真的嗎?他們有沒有相同的材料?兩者結合的最佳方式是什麼?