Как функционально вычислить разницу между последовательными элементами списка неизвестного размера?

На языке программирования, который является чисто функциональным (например, Haskell) или где вы используете его только функционально (например, clojure); предположим, у вас есть список / seq / enumerable (неизвестного размера) целых чисел, и вы хотите создать новый список / seq / enumerable, содержащий различия между последовательными элементами, как бы вы это сделали?

Что я делал ранее в C # должен был перевернуть список и сохранить объект состояния в качестве агрегирующего значения, которое записало «предыдущий» элемент, чтобы вы могли провести по нему отличие от текущего элемента. Список результатов также должен был перейти в объект состояния (что является проблемой для списка неизвестного размера)

Каков общий подход для выполнения такого рода вещей функционально?

28
задан Thomas 1 March 2012 в 17:45
поделиться