現在我開始使用Ocaml,但我遇到了問題。當我輸入這段代碼時,我的測試用例報告說即使我實現了它,代碼也沒有實現。某處是否存在某種語法錯誤?我真的不習慣這種語言,所以是的。提前致謝。開始Ocaml - 返回未實現的測試用例
let rec move_robot (pos: int) (dir: string) (num_moves: int) : int =
let new_position=pos in
if dir="forward" then new_position=pos+num_moves in
else if dir="backward" then new_position=pos-num_moves in
if new_position>=99 then 99
else if new_position<=0 then 0
else new_position
let test() : bool =
(move_robot 10 "forward" 3) = 13
;; run_test "move_robot forward 3" test
let test() : bool =
(move_robot 1 "backward" 4) = 0
;; run_test "move_robot backward 4" test
感謝您的幫助!我的第一語言是C,所以是的;在聲明中用if來聲明變量是很奇怪的想法。 – flymonkey
我知道這是迂腐,但這些都不是變數;他們是價值。變量意味着可變性。 – nlucaroni
它可能同樣迂腐,但這些*是*變量。 50年的術語濫用剛剛使最迫切的程序員忘記了那些在舊的數學意義上實際上意味着什麼。可變類型的變量更準確地稱爲可變引用,單元格或其他同義詞。 ;) –