튜플을 파라미터로 받는 함수도 별다르지 않다. 다음은 두 정수의 합을 계산하는 함수다.
val add: (Int, Int) -> Int = { x, y -> x + y }
함수 타입에서 인자는 괄호 안에 들어 있다. 반면 람다 식에서 파라미터 주변에는 괄호를 쓸 수 없다.
파라미터가 튜플이 아니라면(더 정확히 말해 파라미터가 원소가 1개뿐인 튜플인 경우), it이라는 특별한 이름을 사용해 그 파라미터를 가리킬 수 있다.
val double: (Int) -> Int = { it * 2 }
it을 사용하면 더 간결하게 람다 식을 쓸 수 있지만, 때로 코드 읽기가 더 어려워질 수 있다. 특히 여러 함수 구현의 내포 깊이가 깊어지면 더 그렇다.
Note≡
이 예제에서 double은 함수 이름이 아니다. (람다로 정의한) 함수에는 이름이 없다. 여기서는 일반적인 데이터를 나중에 조작하기 위해 같은 타입의 참조에 대입하는 것처럼 이름이 없는 함수를 그 함수와 일치하는 타입의 참조에 대입한다.
val number: Int = 5
라고 쓸 때, 이는 5의 이름이 number이라고 쓴 것은 아니다. 함수에서도 마찬가지다.