В языке программирования, который является чисто функциональным (например, Haskell) или где вы используете его только функциональным способом (например, clojure); предположим, что у вас есть список /seq/enumerable (неизвестного размера) целых чисел, и вы хотите создать новый список /seq/enumerable, который содержит различия между последовательными элементами, как бы вы это сделали?
То, что я делал ранее в С#, заключалось в том, чтобы сбросить список и сохранить объект состояния как агрегирующее значение, которое записало "предыдущий" элемент, чтобы вы могли выполнить разницу с ним из текущего элемента. Список результатов также должен был попасть в объект состояния (что является проблемой для списка неизвестного размера)
Каков общий подход к выполнению такого рода функций?