hd(head의약자) 와 tl(tail의 약자) 이란
List.hd, List.tl 을 의미하며
hd는 List의 첫 원소, tl은 첫 원소를 제외한 나머지 List를 추출한다.
예시) List.hd[1;2;3;4] = 1
List.tl[1;2;3;4] = [1;2;3]
match와 함께 자주 쓰인다.
아래 모든 리스트 원소에 1씩 더해주는 함수 inc_one 를 예시로 보자.
inc_one [1;2;3;] 를 한다면
(1+1) :: inc_one [2;3] ....
inc_one[2;3] => (2+1) :: inc_one[3]
inc_one[3] => (3+1) :: inc_one[]
결과적으로 [2;3;4] 가 출력된다.
* :: 는 리스트에 원소 1개를 넣는 연산자이다. (리스트 끼리는 ::를 쓸 수 없으므로 [hd+1] :: (inc_one tl) 은 오류가 난다.
728x90
'기타 언어 > Ocaml' 카테고리의 다른 글
[Ocaml] Ocaml print / 출력 / print_endline / (0) | 2019.10.27 |
---|---|
[Ocaml] 모듈이란? / 모듈 사용법 / module (0) | 2019.10.07 |
[Ocaml] Type 선언 / Type 이란? (0) | 2019.10.02 |
[Ocaml] if 문 / if 표현식 / 함수형 프로그래밍 (0) | 2019.09.27 |
[Ocaml] match / 함수형 프로그래밍 (0) | 2019.09.27 |
댓글