1
A
답변
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
2
는 또한 http://ocaml.org/learn/에 ressource to 보라를 - 특히,이 책 "진짜 세계를 OCaml" section on lists
사실, 거기에 나열된 재귀 함수는이 질문에 대한 저의 영감이었습니다. 두 번째 줄의 "h :: t"가 무엇을 의미하는지 자세히 신경 써도 될까요? 나는 그것이 머리와 꼬리를 가리킨다는 것을 알고 있으며, Scheme에 대한 나의 경험에서 이것은 머리가 첫 번째 요소이고 꼬리가 다른 모든 요소가된다는 것을 의미합니다. – user2789945
대략적으로 : 주어진 목록이 비어 있지 않으면 머리와 꼬리가 있어야합니다. 머리'h'를 부르고 꼬리 t를 부르십시오. 예, 머리는 단일 요소이고 꼬리는 요소 목록입니다 (나머지 요소). –
고마워요! 그것은 저에게 거대한 두통을 덜어주었습니다. – user2789945