2009-04-11 84 views
2

我正在通過SICP工作,同時使用Ableson/Sussman 講座和伯克利61A講座,這些講座遠遠超過了我的 速度。我想做一些伯克利家庭作業,但需要定義句子,但第一個,最後一個等等。看起來似乎曾經有一種簡單的方案語言嵌入到Dr. Scheme中,但是最近的版本4.1.5並沒有它。從Planet PLT 我想我可以在我的定義窗口中簡單地添加(require(planet「simply-scheme.ss」(「dyoo」 「簡單方案」1 0))))。我得到求博士方案的簡單方案成語

require: PLaneT 
could not find the requested package: Server had no matching package: 
No package matched the specified criteria 

我試圖從here 抓住simply.scm文件,並粘貼到我計劃博士定義窗口,但它不工作:

在高級模式下的學生,我得到 讀:非法使用「。」在下面的代碼

對於線(拉姆達(字符串參數)

(define whoops 
    (let ((string? string?) 
    (string-append string-append) 
    (error error) 
    (cons cons) 
    (map map) 
    (apply apply)) 
    (define (error-printform x) 
     (if (string? x) 
     (string-append "\"" x "\"") 
     x)) 
    (lambda (string . args) 
     (apply error (cons string (map error-printform args)))))) 

在R5RS我得到 集!:在不能突變模塊要求的標識符:。號 - >串 (第7行下面的代碼)

(if (char=? #\+ (string-ref (number->string 1.0) 0)) 
    (let ((old-ns number->string) 
     (char=? char=?) 
     (string-ref string-ref) 
     (substring substring) 
     (string-length string-length)) 
     (set! number->string 
     (lambda args 
      (let ((result (apply old-ns args))) 
     (if (char=? #\+ (string-ref result 0)) 
      (substring result 1 (string-length result)) 
      result))))) 
    'no-problem) 

回答

4

高級學員將永遠不會真正除非你下面的設計爲它說的實例爲你工作。大多數書籍和實例將承擔R5RS或類似的東西。我會建議使用預tty Big語言,包括R RS,以及PLT require語法,以及其他一些內容。

爲了利用從地球上簡單的方案包,您將需要使用新的需要語法(你可以在package listing page找到這個,它看起來像docs for the package尚未更新):

(require (planet dyoo/simply-scheme:1:2/simply-scheme)) 
+0

謝謝Brian。你是男人! – Leonard 2009-04-11 13:55:54