わからん

Scala
カリー化っておいしいの?

scala> def add(a: Int)(b: Int) = a + b
add: (Int)(Int)Int

scala> val list = List(1,2,3)
list: List[Int] = List(1, 2, 3)

scala> list.map { add(3)(_) }
res7: List[Int] = List(4, 5, 6)

Ruby
こうですか?わかりません><

>> add=Proc.new{|a,b| a+b}
=> #<Proc:0x010ecbac@(irb):4>

>> [1,2,3].map {|i| add.call(3,i)}
=> [4, 5, 6]

途中でストップしてる「ふつうのHaskellプログラミング」をやり直すべきか。


#ymnkさんより

> def add(a:Int, b:Int)=a+b
add: (Int,Int)Int

> val add3=Function.curried(add _)(3)
add3: (Int) => Int = <function>

> val list = List(1,2,3)
list: List[Int] = List(1, 2, 3)

> list.map { add3(_) }

ううむ。