728x90
head 함수의 타입이 무엇이라고 생각하는가? head 함수는 리스트를 받아 첫 번째 요소를 반환한다. 지금 확인해보자.
여기서 a는 무엇인가? 타입을 뜻하는 것인가? 앞서 타입은 대문자로 쓴다고 말한바 있다. 그러므로 a는 타입이 아니다. 타입이 아니라 타입변수(type variable)이다.
a는 어떤 타입이라도 될 수 있다는 의미이다. 다른 언어의 제너릭같은 개념이다. 타입 변수를 가지고 있는 함수는 다형함수(polymorphic functions) 라고 부른다. head 의 타입 선언은 어떤 타입의 리스트를 받아서 그 타입의 한 원소를 반환한다는 말이다.
fst 함수를 기억하는가? 페어의 첫 번째 요소를 반환하는 함수이다. 타입을 확인해보자.
a 와 b 는 서로 다른 타입 변수임에 주의해야 한다. 하지만, 반드시 서로 다른 타입이어야할 필요는 없다.
728x90
'프로그래밍 Programming' 카테고리의 다른 글
하스켈 Yesod Illegal view pattern: fromPathPiece -> Just dyn_anHx (0) | 2018.01.19 |
---|---|
하스켈 Yesod Echo.hs:6:48: error: parse error on input ‘{’ (0) | 2018.01.19 |
하스켈 Starting out - (8) 타입 (0) | 2017.12.05 |
Error haskell: Variable not in scope (0) | 2017.12.04 |
하스켈 Starting out - (7) 튜플 Tuples (0) | 2017.12.02 |