Должен ли я использовать складки в пакетах Turtle или Foldl? - PullRequest
0 голосов
/ 26 апреля 2018

У меня возникли некоторые трудности с использованием Turtle, и только через несколько минут, глядя на непонятные сообщения об ошибках, я понял, что использовал неправильную функцию fold.

https://hackage.haskell.org/package/turtle-1.5.8/docs/Turtle-Shell.html#v:fold https://hackage.haskell.org/package/foldl-1.4.0/docs/src/Control.Foldl.html#fold

Почему происходит столкновение имен? Я не верю, что это совпадение, но я не могу понять это. Являются ли эти по сути различные виды складок?

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

1 Ответ

0 голосов
/ 26 апреля 2018

(Прежде всего, сгибы, о которых мы здесь говорим, не являются foldr foldl foldl ' функциями из Data.Foldable, они из Пакет foldl , который концептуально относится к функции foldl' из Data.Foldable, как своего рода универсальное обобщение, но имеет отдельные определения.)

Тип данных Fold представляет собой строгую операцию с сохранением состояния для выполнения на входящей последовательности значений. Его экземпляр Applicative позволяет запускать две операции, объединенные в одной последовательности значений. Fold имеют приятное свойство, что они не имеют никакого отношения к тому, откуда берутся значения.

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

Функция fold из пакета foldl подает содержимое любого контейнера Foldable. fold from turtle подает результаты Shell. Потоковые библиотеки, такие как "pipe", имеют свои собственные адаптеры .

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