Skip to content

Instantly share code, notes, and snippets.

@nattybear
Last active December 15, 2020 04:04
Show Gist options
  • Save nattybear/ba8a8c31e251ed2341b4f13028ac2599 to your computer and use it in GitHub Desktop.
Save nattybear/ba8a8c31e251ed2341b4f13028ac2599 to your computer and use it in GitHub Desktop.
하스켈 함수의 선언과 사용

함수 선언

하스켈에서 함수를 선언할 때는 아래와 같은 형식으로 한다.

함수이름 인자1 인자2 ... = 함수내용
  • 먼저 함수 이름을 적고
  • 인자를 차례대로 적은 다음
  • = 표시를 적고
  • 함수의 내용을 적으면 된다.

예를 들어 넣은 인자를 그대로 리턴하는 id 함수는 아래와 같이 선언한다.

id x = x

함수의 사용

선언한 함수를 사용할 때는 아래와 같이 함수 이름과 인자를 차례대로 적으면 된다.

ghci> id 1
1

함수 id에 숫자 1을 넣었더니 그대로 1이 나왔다! 쓸모 없어 보이는 함수

약간 쓸모 있는 함수

이번에는 id 보다는 약간 더 쓸모 있어 보이는 함수 inc를 만들어보자. 인자로 넣은 수에 1을 더한 값을 리턴하는 함수이다.

inc x = x + 1

아래와 같이 함수 inc에 숫자 1을 넣으면 숫자 2가 나온다!

ghci> inc 1
2

인자가 여러개인 함수

인자의 개수가 여러개인 함수 add를 만들어보자. 인자 두개를 서로 더한 값을 리턴하는 간단한 함수이다.

add x y = x + y

아래와 같이 사용하면 된다.

ghci> add 1 2
3

파이썬

위에서 등장한 함수들을 파이썬으로 구현하면 아래와 같다.

def id(x):
  return x
  
def inc(x):
  return x + 1
  
def add(x, y):
  return x + y

id(1)  # 1
inc(1)  # 2
add(1, 2)  # 3

다른 점

파이썬과 문법이 다른 점을 살펴보면 아래와 같다.

  • 함수 선언 시 def 같은 별도 키워드가 필요 없다.
  • 인자들 구분할 때 쉼표 ,가 필요 없다. 띄어쓰기로 구분한다.
  • 함수를 선언하거나 사용할 때 괄호 ()가 필요 없다.

진짜 쉬운 하스켈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment