我正在寫一個功能,需要一個單一的戰鬥騎士名單。運行他們戰鬥的代碼正在工作(角逐遊戲),現在我正在編寫一個錦標賽系統,我無法讓我的錦標賽開始工作。正如我所說,它需要一個騎士名單,並讓他們遞歸戰鬥,直到每個人都參加戰鬥,並返回兩個名單,一個贏家,一個失敗者。我嘗試了我所知道的一切,無論我做什麼,我都會遇到錯誤,代碼拒絕工作,我不明白爲什麼。這是我到目前爲止已經寫的:我是新來的計劃,我不知道什麼是錯的
(define (playTourneyRound knightList)
(
(cond
((> (length knightList) 1)
(let (
(winner (jousting-game (car knightList) (cadr knightList)))
(winners (list))
(losers (list))
(results (playTourneyRound (cddr knightList)))
)
(if (= winner 1) (winners (append winners (list (car knightList)))) (winners (append winners (list (cadr knightList)))))
(winners (append (car results)))
(losers (list (cadr knightList) (cadr results)))
(list winners losers)
)
)
((= (length knightList) 1)
(list knightList)
)
)
(list '() '())
)
)
可有人請向我解釋爲什麼我收到錯誤「的非過程調用:#」,我怎麼能避免以後出現此錯誤?我相信我只是不明白關於scheme/lisp的一些重要內容,而且我真的可以使用一個解釋。
感謝所有幫助下,問題已經解決
您的縮進全部錯誤! – leppie
提示:'(贏家......';不看猶太教(缺少'let'?) – leppie
忽略縮進問題@leppie,(獲獎者)部分看起來工作正常,實際上,似乎並不 – user2904660