カリー化の備忘録

コップの会でまた忘れててもやもやとしていたので・・
コップ本より

scala> def curriedSum(x: Int)(y: Int) = x+y
curriedSum: (Int)(Int)Int
scala> curriedSum(1)(2)
res13: Int = 3

scala> val cf = curriedSum(1) _ 
cf: (Int) => Int = <function>

scala> cf(2)
res14: Int = 3

イメージ

scala>def first(x: Int) = (y: Int) => x + y
first: (Int)(Int) => Int

scala> val second = first(1)
second: (Int) => Int = <function>

scala> second(3)
res16: Int = 4

あと、Scala hack-a-thon #1でのyuroyoroさんの資料より関数編
http://dl.dropbox.com/u/261418/scala-hackathon/basic/function.html

血肉となるまでしつこく復習して定着させないと駄目だな。