지금은 Ocaml을 시작하고 있지만 문제가 있습니다. 이 코드를 입력하면 테스트 케이스에서 코드를 구현했지만 구현되지 않았다고보고합니다. 어떤 종류의 구문 오류가 있습니까? 나는 언어에 진짜로 이렇게 이용된다. 미리 감사드립니다. 당신이 사방에 구문 오류가있어 move_robot
최상위 수준에로드 된 적이 있기 때문에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 년에 걸친 용어 학대로 인해 대부분의 명령형 프로그래머는 좋은 오래된 수학적 의미에서 실제로 의미하는 것을 잊어 버렸습니다. 변경 가능한 종류의 변수는 더 정확하게 가변 참조, 셀 또는 다른 동의어라고합니다. ;) –