注意:我正在做這個作業。我不是在尋找算法來解決我的問題,只是想了解Scheme如何工作。在計劃中返回列表中的最小項目
我是新來的計劃,並試圖編寫一個小程序來查找列表中的最小項。該程序正在工作,因爲它找到了正確的答案(所以邏輯有點合理),但我只知道這一點,因爲一個錯誤即將出現,它試圖將我的答案作爲一個函數來處理並稱之爲函數。
(DEFINE (startmin mylist)
(
(repeatmin (CAR mylist) (CDR mylist))
))
(DEFINE (repeatmin curmin mylist)
(
(IF (NULL? mylist) ;If the list is empty
;This is where I'm at a loss. I want a way for this value to be
;sent out once the list is empty
curmin ;return the current minimum
(IF (< curmin (CAR mylist)) ;if the current minimum is less than the head of the list
(repeatmin curmin (CDR mylist)) ;recurse with curmin
(repeatmin (CAR mylist) (CDR mylist)) ;otherwise recurse with the head of the list.
)
)
))
我真的在我如何獲得價值的損失,一經發現,退了出去,因爲它不停地嘗試把值作爲函數的遞歸。
[Sylwester's answer](http://stackoverflow.com/a/43430528/7872323)爲我修復了它。 –
您不應該手動將問題標記爲「[解決]」。通過點擊灰色複選標記符號來接受Sylwester的回答,並且問題的微型圖標將自動標記爲綠色。 – suchtgott