1
A
回答
2
下面是一個例子:
val foo: Int => Int => Int = x => y => x + y
功能foo
具有Int => Int => Int
的簽名,這意味着調用它的一些參數(什麼也被稱爲局部應用程序),它返回簽名Int => Int
的另一功能:
val bar: Int => Int = foo(1)
,您可以調用方式如下:
val result = bar(2)
result == 3
2
有人可以顯示和解釋一個函數,返回一個匿名方法/ lambda也是一個curried函數嗎?
其中一個簡單的方法,看看它是建立一個currried和方法:
def sum(x: Int): Int => Int = y => x + y
,並稱之爲:
val curried: Int => Int = sum(1)
println(curried(2)) // will yield 3
如果你想變換方法的功能,您可以使用eta擴展:
val sumFunc: Int => Int => Int = sum _
println(sumFunc(1)(2))
相關問題
- 1. 從函數返回一個lambda函數
- 2. 創建一個返回curried函數(SML)的函數
- 3. 從一個Mongoose返回父函數的結果匿名函數
- 4. 保存一個匿名函數(lambda)作爲函數型變量
- 5. Clojure:從一個匿名函數返回一個向量
- 6. C++ Lambdas:函數返回一個函數,返回一個函數...?
- 7. 函數返回一個函數,返回一個函數等
- 8. array_walk一個匿名函數
- 9. send()是一個匿名函數嗎?
- 10. 匿名函數返回一個數組的長度更新 - MATLAB
- 11. 在另一個匿名函數中嵌入一個匿名函數
- 12. 返回匿名函數
- 13. 匿名函數返回值
- 14. 匿名函數返回True
- 15. 匿名函數返回值
- 16. 返回匿名函數
- 17. 如何檢查一個函數是否是匿名函數R
- 18. 傳遞一個匿名函數到另一個函數在Javascript
- 19. 如何返回接收lambda/function的匿名函數/ lambda?
- 20. CoffeeScript總是返回匿名函數
- 21. 如何創建一個返回`True`的匿名函數?
- 22. 從匿名封裝器返回一個函數?
- 23. Fortran - 從子程序返回一個匿名函數
- 24. 是否有從函數返回匿名函數的名稱?
- 25. 爲什麼變量等於一個返回函數的匿名函數?
- 26. 匿名函數:「對象不是一個函數」
- 27. 如何從一個lambda函數返回一個字符串?
- 28. JS函數返回另一個函數
- 29. 函數返回一個函數(JavaScript)的
- 30. 函數返回另一個函數
eta是什麼意思? –
不知道ETA代表什麼,但這就是它的名字。谷歌eta擴展,關於這個問題的很多好博客文章。 –
@coolbreezeη-expansion是一個Scala構建的將方法轉換爲函數的術語。最初它是在lambda微積分中定義的(一些細節在這裏:https://wiki.haskell.org/Eta_conversion)以及α,β以及毫不奇怪的λ。 –