Записать в несколько файлов в Haskell

В Haskell, как можно было бы записывать в произвольно большое количество файлов?

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

main :: IO ()
main = do
       let letter = map (:"") ['a'..'z']
       zipWith writeFile letter letter

который произвел следующую ошибку:

Не удалось сопоставить ожидаемый тип 'IO ()' с фактическим типом '[IO ()]'

Я чувствую, что должен быть способ перебрать список в блоке do, но я пока не смог его найти.

1 ответ

Решение

Вам нужна функция zipWithM.

Число рейнольдса way to loop through a list in a do blockДля этого есть функция - последовательность, так что вы можете написать sequence $ zipWith writeFile letter letter,

Другие вопросы по тегам