能不能用DrRacket代替GUN MIT Scheme去實現SICP中的習題?DrRacket和GNU MIT Scheme有什麼區別?

時間 2021-06-02 14:59:09

1樓:李欣宜

原PLaneT neil/sicp已停止維護。建議轉SICP Collections,實現上相對更加完善一些。但與原書有點區別,比如在picture language部分對應的sicp-pict collection的transform-painter原型在這個包裡的原型是

(transform-painter

origin

corner1

corner2

)->(painter?

->painter?

)而SICP原書是

(transform-painter

painter

origin

corner1

corner2

)->painter

再比如即使是在DrRacket中實現的SICP包也還是保留了Racket大小寫敏感的特性,而MIT-Scheme除了字元(串)常量以外的大小寫不作任何區分(包括quote)。

再補充乙個遇到的問題,MIT-Scheme預設實現了get/put過程,SICP原書也在第三章給出了實現,但第二章預設這些過程是built-in的,但SICP包並沒有實現這兩個原語。如果堅持用DrRacket去刷可以嘗試這樣解決這個問題

#lang

sicp

(#%require

(only

racket/base

make-hash

hash-ref

hash-set!))(

define

*op-table*

(make-hash))(

define

(put

optype

proc)(

hash-set!

*op-table*

(list

optype

)proc))(

define

(get

optype)(

hash-ref

*op-table*

(list

optype)'

()))

這樣相比MIT-Scheme built-in put可以在第二個引數用(put op '(type))這樣的寫法擴充套件這個op的型別範圍,我們的寫法只能老老實實用(put op 'type)

2樓:Emma

我在ubuntu 16.04系統下,安裝的是DrRacket6.3,《程式設計方法》書中的第六章習題,繪圖不能用,總提示函式未定義,我看了幫助臺提示的內容,說是5.

3版本後就繫結了picture programmer 的軟體包,不知道是不是bug.前幾章的課後題都自己做了,都能得到預期結果,我前天才開始學習Scheme,所以不知是bug,還是需要自己定義函式(我覺得應該是bug,或安裝時沒能裝上),也請有經驗的知友幫我解答下疑惑

3樓:kiddog

可以,沒問題。

中間會有些坑,不過不大,這也是機會,可以更清楚的認識到racket在實現scheme標準時的異同。

其實,主要原因是 DrRacket 實在太方便了。

在這裡問,還不如自己多搜搜資料看看...

4樓:Wilem

mit-scheme 9.1 的Edwin在win8上有不少BUG(到目前為止,官方還沒有修正)。用9.0.1版就OK了。

5樓:劉俊是

還是老老實實用mit-scheme,還可以順便學點emacs,drracket的流和mit-scheme的流的實現不一樣,沒法做後面的習題

6樓:Allen

完全可以具體參考blog http://

blog.csdn.net/boyxiaolo

ng/article/details/25301297

7樓:涼拌茶葉

其實我覺得沒啥問題,我用Common Lisp搞SICP,從未遇到麻煩。

[Lisp內戰向]好吧,我承認遇到了一些麻煩……這些麻煩會使得你很想轉向Scheme

8樓:祖與佔

SICP Support for DrRacket

具體的差別可以看這裡:

lisp - How is Racket different Than Scheme?

9樓:馮東

支援 GC,closure,reference/pointer 的語言都可以。

如果不是 Lisp,第四章之後需要自己寫乙個 S-exp parser。僅此而已。

能不能用溴代替硫除汞?

NikkiMg 這讓我想到乙個梗 俗話說得好,溴多了加汞,汞多了加溴。我的意思是,當你因為汞危險而選擇加溴的時候,須知溴也是危險的。除非你可精確地新增,否則你必須加到過量,然後再想辦法除去過量的溴。與其這樣,不如從源頭消滅它 不要打碎體溫計。 話分兩頭說 Br2 很容易和 Hg 反應,生成的 HgB...

子彈裡火藥部分能不能用蓄力的彈簧代替?

踏踏實實 可以是可以。但是,彈簧能有多大的力量啊?且彈簧的話震動太大了。彈簧可那麼激發一下那不得多大的震動啊說不定整個型號那麼激發一下那不得多大的震動啊,說不定整個型號都被震碎了。所以說在出氣量不夠的時候,我們一般建議的是不要加裝彈簧的力量。而是直接擴大。閥門的出氣量。也就是閥口的大小。當然了。閥門...

能不能用番茄醬來代替番茄然後炒雞蛋?

高思 算是兩個菜吧,口味不一樣 番茄醬高糖高鹽,炒出來口味比較重,由於番茄醬是糜狀,炒出來的成品賣相不太好,其次炒雞蛋本身比較油膩,和番茄醬搭配一起炒會比較膩,口感比較獨特,當然也有些地方有這種吃法。如果要做,我推薦番茄醬燒蛋白,口感會比較好。番茄本身有酸甜味,而且多汁,加熱後會少量出粉,口感會比較...