욱'S 노트

Scala - 커링 본문

Programming/Scala

Scala - 커링

devsun 2016. 11. 4. 09:38

메소드에는 여러개의 파라미터를 정의할 수 있다. 메소드를 호출할때 더 작은 수의 파라미터가 들어오면 메소드는 전달된 수를 기본값으로 하고 그것보다 적은 수의 파라미터를 가진 함수로 표현될 수 있다.

object CurryingTest extends App {
def modN(n : Int)(x : Int) = x % n

def multiply(f : Int => Int, x : Int, y : Int) = f(x) + y

println(multiply(modN(2), 10, 4))
}

위의 예제를 보자 modN은 두개의 파라미터가 정의된 것 같지만 multiply에서 사용시 한개의 파라미터만 전달되었다. 이 경우 n인자를 디폴트로 전달받은 함수로 인지되어 modN(2)는 multyply의 Int => Int 타입에 맞는 함수로 사용될 수 있다.


출처 : http://docs.scala-lang.org/tutorials/tour/currying


'Programming > Scala' 카테고리의 다른 글

Scala - 패턴 매칭  (0) 2016.11.09
Scala - Case 클래스  (0) 2016.11.08
Scala - 내포된 함수  (0) 2016.11.02
Scala - 고차함수  (0) 2016.11.02
Scala - 익명 함수  (0) 2016.11.02
Comments