Teo*_*off 13 function currying
在许多列表处理语言(以及其他语言)中,它们都有一个名为curry的函数,它可以做一些简洁的事情.我的问题是为什么他们称之为咖喱?这个名字来自哪里?我唯一的猜测是来自世界各国的美味咖喱菜肴,但我看不出与这个和功能行为的任何关系.
该概念本身以开发它的Haskell Curry命名。
基本上,咖喱化是将N个参数的函数转换为N个嵌套函数的“树”,每个函数都使用一个参数。
在Haskell中,该curry函数将两个参数的函数转换为一个参数的函数,该函数返回一个参数的另一个函数,该函数最终将返回结果。它具有以下类型:
curry :: ((a, b) -> c) -> a -> b -> c
Run Code Online (Sandbox Code Playgroud)
它的实现比类型定义短:
curry f x y = f (x, y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |