Skip to content

Instantly share code, notes, and snippets.

@MarioAriasC
Created April 15, 2015 23:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MarioAriasC/77399090e16c85695899 to your computer and use it in GitHub Desktop.
Save MarioAriasC/77399090e16c85695899 to your computer and use it in GitHub Desktop.
Uncurried functions
[Test] fun testUncurrying() {
val sum2ints: (Int, Int) -> Int = { x, y -> x + y }
val curried: (Int) -> (Int) -> Int = sum2ints.curried()
assertEquals(curried(2)(4), 6)
//same type as sum2ints,
val back: (Int, Int) -> Int = curried.uncurried()
assertEquals(back(2, 4), 6)
assertEquals(sum2ints(2, 4), 6)
val sum3ints: (Int, Int, Int) -> Int = { x, y, z -> x + y }
val f: (Int) -> (Int) -> (Int) -> Int =sum3ints.curried()
val x: (Int, Int, Int) -> Int =f.uncurried()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment