OCaml을 사용하려고하는데 코드를 컴파일하는 데 문제가 있습니다. 내가 최고 수준에 그것을 입력하거나 이중 세미콜론을 추가하는 경우, 코드가 잘 실행, 그러나이중 세미콜론을 사용하지 않으면 ocamlc이 실패합니다.
File "all.ml", line 4, characters 35-49:
Error: This function has type float -> float
It is applied to too many arguments; maybe you forgot a `;'.
.. : ocamlc -o all all.ml
과 그 코드를 컴파일하려고
let area_of_ring inner_radius outer_radius =
let pi = acos (-1.) in
let area_of_circle r = pi *. r *. r in
area_of_circle outer_radius -. area_of_circle inner_radius
Printf.printf "Area of ring: %f\n" (area_of_ring 1. 3.)
나에게 다음과 같은 오류를 제공합니다
# let area_of_ring inner_radius outer_radius =
let pi = acos (-1.) in
let area_of_circle r = pi *. r *. r in
area_of_circle outer_radius -. area_of_circle inner_radius;;
val area_of_ring : float -> float -> float = <fun>
# Printf.printf "Area of ring: %f\n" (area_of_ring 1. 3.);;
Area of ring: 25.132741
- : unit =()
누군가가 무슨 일이 일어나는지 설명 할 수 있습니까? 중요한 것은 아니지만 어디서나 더블 세미콜론없이 프로그램을 작성하고 싶습니다.
아, 명시하지 않음으로써 그래서 인쇄 라인 새로운 표현식이거나 그런 식으로 컴파일러가 area_of_ring 함수의 다음 줄로 읽으려고 했습니까? – Nathan
네, 맞습니다. –
좋아요! 그건 완벽하게 이해가됩니다. 처음에는 함수형 언어를 사용하기 때문에 비 명령형 스타일 규칙 및 구문에 익숙해지는 것은 약간 어렵습니다. – Nathan