함수를 정의하자.

By | February 18, 2016

수학적 함수표기와 Haskell 함수표기의 차이점

Mathematics Haskell
f(x) f x
f(x,y) f x y
f(g(x)) f (g x)
f(x,g(y)) f x (g y)
f(x)g(y) f x * g y

조건 표현식으로 함수 정의하기

조건 표현식 중첩하기

주의 Haskell에서 if 조건 표현식은 항상 else 문이 있어야 한다.

Guard를 사용하여 함수 정의하기

아주 깔끔하다.

패턴매칭을 사용하여 함수 정의하기

좀 더 간단하게

좀 더 성능 좋게, 첫번째 인자를 평가해서 False이면 두 번째 인자를 평가하지 않기 때문이다.

함수 정의에 나타나는 리스트 패턴

  • : 은 cons라 부른다.
  • [1,2,3,4]1:(2:(3:(4:[]))) 를 의미한다.
  • :는 존재하는 리스트의 앞쪽에 요소를 삽입하는 연산자이다.
  • xs 처럼 s 가 붙은 표기를 리스트로 보는 관례가 있다.
  • (x:xs) 는 첫 요소가 x이고 나머지가 xs인 리스트이다.
Share on FacebookTweet about this on TwitterShare on Google+Share on RedditEmail this to someone