하스켈에서 함수를 선언할 때는 아래와 같은 형식으로 한다.
함수이름 인자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
같은 별도 키워드가 필요 없다. - 인자들 구분할 때 쉼표
,
가 필요 없다. 띄어쓰기로 구분한다. - 함수를 선언하거나 사용할 때 괄호
()
가 필요 없다.