Javascript Fold уменьшить функциональное программирование - PullRequest
0 голосов
/ 24 июня 2018

В Javascript есть функция Reduce, которая принимает функцию и массив, отображает массив и возвращает то, что возвращает функция.

Например:

[1, 2, 3].reduce(function(acc, x) {
  acc += x 
  return acc;
}, 0); // 6 

В Haskell есть сгиб, которыйдля меня сделайте то же самое:

foldl (+) 0 [1,2,3]  -> 6

Если я хочу создать функцию такого рода в виде библиотеки, можно ли с уверенностью назвать ее сложенной, а не уменьшенной, и есть ли разница между ними.

Обе функции одинаковы, кроме имени, или есть какая-то разница

Я демонстрирую на разных языках, потому что у Js нет функции foldl.

Спасибо

1 Ответ

0 голосов
/ 24 июня 2018

Именование несовместимо и зависит от языка.

В некоторых контекстах, таких как Kotlin, reduce не принимает начальное значение, а fold.В Haskell есть foldl и foldl1, чтобы различать два вида.В Clojure одна и та же функция reduce имеет разные перегрузки для принятия начального значения или не принятия его.

Они в основном описывают одну и ту же концепцию, и я никогда не обнаруживал какой-либо четкой разницы между этими двумяимена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...