所以我需要一些幫助來實現使用Scheme的Make-memory程序。我需要兩條消息'寫入'和'讀取'。所以它會像(mymem'寫34 -116)和(mymem'讀99)是對的?和(定義mymem(make-memory 100)).....我將如何在計劃中實現這一點?使用Alist ???我需要一些幫助編碼它。我有這樣的代碼使得make-memory成爲一個過程,當你運行mymem時你得到了((99.0)),我需要做的就是重複這個,所以我得到了一個虛線對((0.0))的alist。所以,有關如何編碼的建議?有沒有人有任何想法我可以做什麼來重複和製造消息寫和讀?PLT方案內存
(define make-memory
(lambda (n)
(letrec ((mem '())
(dump (display mem)))
(lambda()
(if (= n 0)
(cons (cons n 0) mem) mem)
(cons (cons (- n 1) 0) mem))
(lambda (msg loc val)
(cond
((equal? msg 'read) (display
(cons n val))(set! n (- n 1)))
((equal? msg 'write) (set! mem
(cons val loc)) (set! n (- n 1)) (display mem)))))))
(define mymem (make-memory 100))
是的,這是一個任務,但是我寫了這個代碼。我只需要一些幫助或方向。是的,我知道可變長度參數列表。
有幾種可能性,但似乎這可能是作業。如果是這樣,你有什麼限制?你可以使用你想要的任何功能,或者只使用你知道的某些功能嗎?語言功能一樣 - 你知道變長參數列表嗎? – 2010-01-14 23:44:23
即使沒有「PLT計劃」提及,這個SMELLS就像一個家庭作業問題。 – 2010-01-14 23:52:14