2015-01-26 4 views
1

내가 OCaml의 언어 설명서를 읽고 그러나OCaml의 죄수

:: 

로 표시의 "단점"연산자 건너 온거야, 모든 그것이 무엇인지, 어떤에서 설명 아니에요의 일반적으로 사용됩니다.

답변

3

이것은 연산자를 구조화하는 기본 목록입니다. 목록 [1; 2; 3]:: 연산자의 세 가지 응용 프로그램으로 구성된다. (이 작업은 50 년의 초기 리스프 일부터 cons 호출 된)

$ ocaml 
     OCaml version 4.01.0 

# 1 :: 2 :: 3 :: [];; 
- : int list = [1; 2; 3] 

:: 운영자는 패턴

나타날 수 있습니다 , 목록 destructure to :

let rec length l = 
    match l with 
    | [] -> 0 
    | h :: t -> 1 + length t 
+0

사실, 거기에 나열된 재귀 함수는이 질문에 대한 저의 영감이었습니다. 두 번째 줄의 "h :: t"가 무엇을 의미하는지 자세히 신경 써도 될까요? 나는 그것이 머리와 꼬리를 가리킨다는 것을 알고 있으며, Scheme에 대한 나의 경험에서 이것은 머리가 첫 번째 요소이고 꼬리가 다른 모든 요소가된다는 것을 의미합니다. – user2789945

+1

대략적으로 : 주어진 목록이 비어 있지 않으면 머리와 꼬리가 있어야합니다. 머리'h'를 부르고 꼬리 t를 부르십시오. 예, 머리는 단일 요소이고 꼬리는 요소 목록입니다 (나머지 요소). –

+0

고마워요! 그것은 저에게 거대한 두통을 덜어주었습니다. – user2789945