LiKao는 이미 모든 핵심 사항을 설명했지만, 한 번에 한 줄 씩 정의를 입력하면 어떤 입력이 어떤 응답에서 왔는지 보여줄 수 있습니다. 그 사람이 입력 한 라인은 #
으로 시작합니다.
# let p5() = print_int 5;;
val p5 : unit -> unit = <fun>
이 유형 unit
의 값을 받아들이고 형 unit
의 값을 리턴하는 함수 (P5)을 정의한다. ()
으로 작성된 유형 단위의 값은 하나뿐입니다. 그래서 이것들은 여러분이 요구하고있는 괄호입니다 (나는 생각합니다). 정의에 나타나는 ()
은 함수에서 허용하는 값의 패턴입니다. 패턴으로, ()
은 (패턴으로 사용 된 모든 상수처럼) 자체와 일치합니다.
# p5();;
5- : unit =()
이것은 다소 혼란 스럽습니다. 5
은 p5
함수에 의해 작성되었습니다. 나머지는 OCaml 최상위 레벨의 응답입니다. 표현식의 결과는 unit
이고 값은 ()
입니다. 의미가 있습니다. print_int
은 int -> unit
입니다.
# print_string "*************************";;
*************************- : unit =()
여기에도 비슷한 혼란이 있습니다. 별표 *
은 print_string
로 작성되었습니다. 나머지는 결과를 나타내며 다시 값을 갖는 unit
유형입니다.
# let p4 = print_int 4;;
4val p4 : unit =()
같은 것이 있습니다. 4
은 print_int
로 작성되었습니다. 나머지는 최상위 레벨이 p4
인 기호가 unit
이고 값이 ()
인 기호를 정의했음을 보여줍니다. 다시 말하지만 이 unit
유형을 반환하고 ()
이 해당 유형의 유일한 값이기 때문에 이는 의미가 있습니다. p4
유형에서 이 아니라이라는 기능을 알 수 있습니다. 함수에는 해당 유형에 화살표 (->
)가 있습니다. p4
은 단지 unit
유형의 값입니다.
# p4;;
- : unit =()
은 여기 유형과
p4
의 값에 대한 최상위에게, 그리고
p4
유형
unit
이며 값
()
을 가지고 (다시)을 알려줍니다.
는'대신 print_string''의 print_endline'가 자동으로 endline 후를 출력하기 때문에 – newacct