Итерация Haskell: простой рабочий пример удаления конечных пробелов

Я пытаюсь понять, как использовать библиотеку итераций с Haskell. Все статьи, которые я видел до сих пор, похоже, сосредоточены на создании интуиции относительно того, как можно построить итераторы, что полезно, но теперь, когда я хочу разобраться и фактически использовать их, я чувствую себя немного в море. Просмотр исходного кода для итераций имел для меня ограниченное значение.

Допустим, у меня есть эта функция, которая удаляет конечные пробелы в строке:

import Data.ByteString.Char8

rstrip :: ByteString -> ByteString
rstrip = fst . spanEnd isSpace

Я бы хотел сделать следующее: превратить это в итерацию, прочитать файл и записать его где-нибудь в другом месте с удалением конечных пробелов из каждой строки. Как я могу структурировать это с помощью итераций? Я вижу, что в Data.Iteratee.Char есть функция enumLinesBS , которую я мог бы изучить, но я не знаю, следует ли мне использовать mapChunks или convStream или как переупаковать указанную выше функцию в итерацию.

19
задан Mikhail Glushenkov 27 November 2012 в 15:15
поделиться