python - 我们怎么称呼这个(新的?)高阶函数?

标签 python haskell functional-programming theory higher-order-functions

我正在尝试命名我认为是高阶函数的新想法。重要的是,这里用Python和Haskell的代码来演示这个概念,后面会解释。

python :

>>> def pleat(f, l):
       return map(lambda t: f(*t), zip(l, l[1:]))
>>> pleat(operator.add, [0, 1, 2, 3])
[1, 3, 5]

haskell :

Prelude> let pleatWith f xs = zipWith f xs (drop 1 xs)
Prelude> pleatWith (+) [0,1,2,3]
[1,3,5]

正如您可能推断的那样,序列正在迭代,使用相邻元素作为您传递给它的函数的参数,将结果投影到新序列中。那么,有没有人看到我们创建的功能?这对职能社区的人来说是否很熟悉?如果不是,我们给它起什么名字?

---- Update ----

Pleat 获胜!

Prelude> let pleat xs = zip xs (drop 1 xs)
Prelude> pleat [1..4]
[(1,2),(2,3),(3,4)]

Prelude> let pleatWith f xs = zipWith f xs (drop 1 xs)
Prelude> pleatWith (+) [1..4]
[3,5,7]

最佳答案

嗯……对位。

(`ap` tail) . zipWith

没有名字。

顺便说一句, Mercurial 说:

 zip`ap`tail

阿兹特克连续数字之神

关于python - 我们怎么称呼这个(新的?)高阶函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3774247/

相关文章:

haskell - 有没有办法实现((a -> b) -> b) -> Either a b 类型的函数?

Haskell 运算符或函数用于将函数从 monad 应用于值?

python - 更快的 numpy 解决方案而不是 itertools.combinations?

python - RS485 Modbus-RTU 设备给出的错误是什么

python - 面具下的 Numpy 标准偏差

python - 命名约定 : What does the 'm' mean in libpython3. 5m.dylib

haskell - 有没有办法在 ghci 的 let block 中定义的多行函数处设置断点?

.net - 在签名文件中共享受歧视的联合

functional-programming - Clojure 中的延续

unit-testing - TDD 与函数式编程语言相比如何?