본문 바로가기
기타 언어/Ocaml

[Ocaml] hd, tl 문 / 함수형 프로그래밍

by 서상혁 2019. 9. 28.


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

댓글