我有一個方案中的對象列表,如下所述。當例如從列表中取出第一個元素時,如何調用對象函數?方案:列表中的對象
(define persons false)
(define length 10)
(let loop ((n 0))
(if (< n length)
(begin
(define newp (make-person))
(send newp setage (- 50 n))
(cond
((= n 0)
(set! persons (list newp)))
(else
(set! persons (cons persons newp)))
)
(loop (+ n 1))
)
)
)
(define (firstpersonage)
(send (car persons) getage)
)
當調用第一個人員時,我收到錯誤消息,說沒有這樣的方法。有沒有辦法將第一個對象「投」成「人」類型?
謝謝!
什麼是'化妝person'程序的執行情況? –
考慮用數字0..9(可以用'(iota 10)'生成)替換你對'let loop'和'set!'的使用'map'。我知道這不是你問的,但我認爲這會讓你的代碼變得更短,更清晰。 – gcbenison