我最近開始閱讀SICP並在本書中做了摘錄。我在命令行安裝了兩個mit-scheme,並且在修改了一下之後,我偶然發現DrRacket並安裝了http://www.neilvandyke.org/racket-sicp/的SICP組件DrRacket不從SICP練習中運行Ackermann功能1.10
一切都運行正常,寫在書:
(define (A x y)
(cond ((= y 0) 0)
((= x 0) (* 2 y))
((= y 1) 2)
(else (A (- x 1)
(A x (- y 1))))))
,然後運行CMD與+ R的代碼,那麼當我把這個從REPL這樣的:
> (A 1 10)
我得到的錯誤
A: undefined;
cannot reference an identifier before its definition
但是,相同的代碼在命令行上安裝的版本上工作..這裏是怎麼回事? DrRacket mit-scheme實現中是否有問題或者我在這裏做錯了什麼?
我使用的是Mac OS X DrRacket 6.1.1版(M3)約塞米蒂
任何幫助將不勝感激,謝謝!
非常詳細的答案,謝謝! – akaralar 2014-12-10 23:15:57
@akaralar不客氣:-) – Sylwester 2014-12-10 23:16:45