SICP第二章里的「圖形語言」在DrRacket 或者MIT Scheme上有沒有辦法實現啊?
你可以用 Drracket 代替GNU Scheme來實現SICP里的所有習題。Drracket: http://racket-lang.org/
因為在Drracket中可以根據源代碼來確定所使用的語言,所以只要在程序開頭寫清楚所需要的語言就可以,比如實現SICP習題的Scheme:為了實現第二章中得圖形語言,我使用的是 PLT Scheme SICP Picture Language package, 只需在第二行加入這句話: ( require ( planet "sicp.ss" ( "soegaard" "sicp.plt" 2 1))) ,就可以使用。
這是一些結果:
最後有一個需要注意的是:將SICP圖形語言中得 wave 替換為 einstein, 畫出來的就都是愛因斯坦爺爺了。這個只要自己會一些繪圖語言(比如 metapost 、postscript 等等),可以很容易實現輸出這些圖形格式的文件
有啊。
題主估計想知道的是在Scheme里怎麼畫圖這裡是Scheme自帶有畫板的介面:make-graphics-device和graphics-draw-line。
使用方法如下:
; draw-line
; 這裡定義一個畫板
(define device (make-graphics-device (car (enumerate-graphics-types))))
; 這裡定義一個劃線的函數
(define (draw-line v1 v2)
(graphics-draw-line device
(xcor-vect v1)
(ycor-vect v1)
(xcor-vect v2)
(ycor-vect v2)))
1、先自己畫個小人:
把分形結合上第三章講的無窮流會更好玩
Picture language 貌似是這個…mit-scheme用的
推薦閱讀:
※想業餘時間學慣用cad二次開發,編程自動出圖,應該如何做?
※Functional Programming 說的就是 Lambda Calculus 嗎?
※clojure中 x x #x 他們之間的關係一直很暈 能給一些應用場景例子嗎?
※Lisp 解釋器?
※如何寫 Lisp 解釋器?