Как мы называем эту (новую?) Функцию высшего порядка?

Я пытаюсь назвать то, что я считаю новой идеей для функции высшего порядка. К важной части, вот код на 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]

Как вы можете догадаться, последовательность повторяется through, используя соседние элементы в качестве параметров переданной функции, проецируя результаты в новую последовательность. Итак, кто-нибудь видел созданный нами функционал? Знакомо ли это вообще тем, кто работает в функциональном сообществе? Если нет, как мы его назовем?

---- 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]
10
задан 4 revs 13 October 2010 в 19:25
поделиться