今、私は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年にわたる専門用語の乱用は、ほとんどの命令的プログラマーに、それが実際に古い古くからの数学的意味での意味を忘れてしまったばかりです。変更可能な種類の変数は、より正確には、変更可能な参照、セル、または他の同義語と呼ばれます。 ;) –