目前,作爲一項任務的一部分,我試圖編寫一個計劃程序,接受3個消息,'get-student-average
'get-assignment-average
和'add-grade
,並根據需要返回信息。 'add-grade
基本上給出了學生的ID,作業和成績,因爲它是按照該順序插入的。我仍在研究學生和作業平均消息(因此在他們面前的分號),但是當我試圖運行它時,失敗的消息是'add-grade
消息。它一直在說成績是一個不受約束的變量。這是我與測試它的代碼:我不知道麻省理工學院計劃通過消息等級表
(define (make-grades)
(define T '())
(define (dispatch op)
((eq? op 'add-grade) (lambda(id as gr) (set! T (append T (list (list id as gr)
)))))
;((eq? op 'get-student-average) (lambda(x) ()))
;((eq? op 'get-assignment-average)
))
(define grades (make-grades))
((grades 'add-grade) 7 1 85))
它是什麼,我做錯了,試圖找回與信息。我認爲,與方案中的表格一樣,訣竅在於將列表作爲列表附加到空值,然後設置它。
還有一堆其他的測試用例(包括一些用於'average
消息),但我沒有包含它們,因爲我覺得它只是重複更多。我覺得我應該提到的另一件事是所有的測試案例都在一個列表中,從'(
開始並以)
結尾。
謝謝奧斯卡,這真的幫了我。 – CodeRook