2014-01-06 114 views
1

我定義foo使用FunctionX#咖喱

scala> def foo(x: Int, y:Int): Int = x + y 
foo: (x: Int, y: Int)Int 

然後我無法設置bar等於foocurried功能。

scala> def bar = foo.curried 
<console>:8: error: missing arguments for method foo; 
follow this method with `_' if you want to treat it as a partially applied 
function 
     def bar = foo.curried 
      ^

我在做什麼錯?

回答

3

foo不是一個函數,它是一種方法。它不是一個對象,它沒有自己的方法。 curried是類型爲FunctionN的對象的方法。

你必須把它轉換爲函數:

(foo _).curried 

隨着foo _要創建Function2類型的新對象。