我有railroad1和station1定義,我想更新鐵路1的價值,而不使用設置!或另一個定義。例如:獲得「set!」的效果沒有使用它
(define railroad1 (list 1991))
(define station1 (list "station"))
(define (add-station railroad station)
(append railroad station)
)
當我打電話(添加站railroad1 STATION1)我得到
(1991 "station")
現在我可以這樣做:
(define railroad1 (add-station railroad1 station1))
這樣railroad1現在(1991年「站「)而不是(1991)。
然而,我的最終目標是能夠只是調用
(add-station railroad1 station1)
並沒有如上明確地重新定義railroad1已經railroad1被重新定義爲(1991年「站」),並且不使用一套!無論是。
編輯:set-car!,set-cdr !,以及其他類似的特殊形式也是不允許的。
有沒有辦法做到這一點?
我認爲你誤解了你的功課。有一定的方法來*模型*設置!和突變而不使用它們,但你所描述的設置似乎將它們排除在外。我想如果你允許導入一個宏定義來改變'define'的含義...... – 2011-03-21 05:45:16
在許多方案系統中,define是一個用'set!'代替的宏。 – knivil 2011-03-21 10:01:41