sicp

    2熱度

    2回答

    爲了用Vim調試MIT-Scheme腳本,我希望能夠儘可能方便地運行當前正在編輯的腳本文件。下面是我在做什麼: sicp.scm (set! load-noisily? #t) (define (abs x) (cond ((> x 0) x) ((= x 0) 0) ((< x 0) (- x)) ) ) (abs 42

    1熱度

    2回答

    這個問題位於SICP(練習1.26) 它說沒有「方塊」的定義,它會運行得更慢。 它旨在檢查數字是否爲素數。 這是更快的版本: Scheme,Prime check,O(log n) 沒有的 「廣場」 的定義,使用 (* (expmod base (/ exp 2) m) (expmod base (/ exp 2) m)) 據說是Ø(ñ)

    1熱度

    1回答

    我用DrRacket 6.6,並使用#lang SiC顆粒,一切都看起來不錯,但功能不存在錯誤,它說: 錯誤:未綁定的標識符模塊:錯誤 爲什麼?

    0熱度

    1回答

    SICP書介紹瞭如何在Scheme中實現Scheme解釋器。幾個月來我一直在玩這個遊戲,而且我的代碼已經從這本書中演變而來。我現在已經達到了實施strict-eval程序的階段,並且我試圖實施總是返回「thunk」(一些封裝表達式和環境以及記憶信息的對象)的對應物。我有一個force-thunk過程,它用memoization評估thunk。我的快速和骯髒的實現當前返回一個圍繞set!表達式的th

    1熱度

    1回答

    練習1.28。費馬測試的一個不能被愚弄的變體稱爲米勒 - 拉賓測試(Miller 1976; Rabin 1980)。這個 從費馬小定理的另一種形式開始,它指出 如果n是質數並且a是小於n的任何正整數,那麼上升到(n-1)st次冪是一致的1模ñ。通過米勒 - 拉賓測試對 測試數n的素數,我們選取​​一個 隨機數a < n並使用expmod過程將a加到(n-1)st模n。然而,每當我們在expmod

    0熱度

    1回答

    (define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence))))) (define (flatmap proc seq) (accumulate app

    2熱度

    2回答

    我是編程界的新手。我正在使用ubuntu操作系統。我已經開始與sicp本書的旅程。我正在與scheme repl合作。但突然我被卡在2.2.4 我無法執行它的例子scheme repl。我試圖運行段的給定的例子,我得到了一個錯誤如下 1 ]=> (define wave2 (beside wave (flip-vert wave))) ;Unbound variable: wave 即使在

    3熱度

    1回答

    fermat-test程序由提出的結構和解釋具有增長等級(theta-of-log(n)order),這已經被我和許多其他人實驗。 令我困惑的是random原始程序的定義。這是否意味着random的增長順序至多是log(n)的θ?經過一番搜索之後,我仍然不確定是否可以編寫一個僞隨機數生成器,其生長順序不超過log(n)的θ。 下面是代碼: (define (fermat-test n)

    -1熱度

    1回答

    請告訴我爲什麼下面的Scheme函數不會打印結果。我正在使用DrRacket。 #lang sicp (define (sqr x) (* x x)) (define (sum_of_greatest_squares a b c) (if(> a b) (if(> a c) (if(> b c) ((+ (sqr a) (sqr c))

    0熱度

    2回答

    演算問題: TRUE = lambda x y . x FALSE = lambda x y . y 1 = lambda s z . s z 2 = lambda s z . s (s z) ... BoolAnd = lambda x y . x y FALSE BoolOr = lambda x y. x TRUE y BoolNot = lambda x . x FALSE