sicp

    3熱度

    1回答

    In the picture language in SICP我無法理解如何transform-painter程序的工作原理: (define (transform-painter painter origin corner1 corner2) (lambda (frame) (let ((m (frame-coord-map frame))) (let ((new

    1熱度

    2回答

    我正在通過SICP工作,並且我正在進行的練習要求提供返回列表中最後一個元素的過程。我實現了程序last-pair要做到這一點,但我很困惑,爲什麼它返回一個列表,而不是一個數字: (define (last-pair alist) (cond ((null? (cdr alist)) (car alist)) ; still happens if this is just "

    7熱度

    2回答

    我修改了SICP中count-change函數的代碼,以便在函數遞歸時它將顯示一對。這對的形式是"(cc a k)" -> "(cc a (- k 1))"或"(cc a k)" -> "(cc (- a (d k)) k)",我的目標是建立一個DOT文件來顯示使用GraphViz的樹狀遞歸。 下面是一個例子的圖像,從下面的代碼生成: 這裏的方案的代碼: ; Count Change

    3熱度

    2回答

    我遇到了Scheme中一些棘手的lambda表達式的問題,我想看看它們是如何被解釋器評估的。 我希望Scheme解釋器打印所有的評估步驟,如SICP Section 1.1.5, "The Substitution Model for Procedure Application"所示。 我正在尋找使用任何Scheme解釋器的解決方案。我已經嘗試過Racket's tracing,但它只跟蹤過程調用

    3熱度

    2回答

    我目前正在通過練習1.3的sicp書。這裏的問題描述:我嘗試用下面的代碼 (define (square x) (* x x)) (define (sq2largest a b c) ((define large1 (if (> a b) a b)) (define small (if (= large1 a) b a)) (define large2 (i

    3熱度

    1回答

    我發現this question在這裏人們推薦使用mit-scheme來解決SICP中的練習。在做了一些python和ruby之後,我想知道是否可以使用mit-scheme解釋器/編譯器以相同的方式如何使用ruby或python?我的意思是簡單地在vim中編寫腳本並在終端運行mit-scheme my_script.scm以查看輸出。 更新 好像mit-scheme < my_script.scm

    2熱度

    3回答

    我對計算機程序的結構和解釋(http://mitpress.mit.edu/sicp/full-text/book/book-ZH-28)第4.3.3節有關於練習4.54的問題。 HTML#%_ sec_4.3.3)。這個練習涉及Amb評估員。 行使如下: 如果我們沒有意識到require可以作爲使用amb,由用戶作爲具有不確定性的計劃的一部分來定義一個普通的程序來實現,我們將有必須將其作爲一種特

    6熱度

    1回答

    這不是一門功課的問題,我剛剛離開不滿意我的區間算術的理解,並鍛鍊2.16的影響。 通過部分2.14定義不呈現正常算術的性質的區間運算。 (r1 * r2)/(r1 + r2)和1 /(1/r1 + 1/r2), 給出了不同的結果。練習問爲什麼會出現這種情況,以及是否可以構造一個間隔算術系統,但情況並非如此。 本節介紹電子元件電阻誤差的計算。我不確定我是否理解這意味着在這些術語中乘以和除去間隔。將兩

    2熱度

    1回答

    我決定嘗試通過麻省理工學院SICP課程,但使用Javascript。 下面的代碼輸出不確定的,但它應該輸出的5 平方根我測試過的所有的小功能,他們都按預期工作的一個相當準確的猜測,這個問題必須在某處在遞歸guessRoot()函數中,但我似乎無法看到問題。 var square = function(x) { return x * x; }; var abs = function(x

    4熱度

    3回答

    流映射定義整型我如何定義過的流映射整數方案: (define integers (stream-cons 1 (stream-map *something* *something*))