в то время как следующий код:Йесод обработчиков, содержание публикуемых файлов
postImportR = do
fi <- lookupFiles "file"
fc <- lift $ fileSource (fi !! 0) $$ consume
, кажется, работает (по крайней мере, я могу «liftIO $ печати к), разделив его на функцию для итерации не:
process :: [FileInfo] -> [String]
process [] = []
process (f:r) = do
fn <- fileName f
fc <- lift $ fileSource f $$ consume
([fn] : (process r))
postImportR = do
fi <- lookupFiles "file"
process fi
или даже с лямбда-функции:.
files <- L.map (\f -> (fileName f, lift $ fileSource f $$ consume)) fi
в обработчике он дает мне ошибку типа я не понимаю
Где моя ошибка - понравилось генерировать контент для импорта базы данных из строк файла (и, конечно же, изучить еще Haskell).
Большое спасибо! Это здорово - но шаг за шагом: (1) Я знаю разницу между «<-» и let-binding, но не нашел времени, чтобы думать о последствиях, вы правы. (2) Поскольку я действительно новичок в Haskell, я все еще недостаточно понимаю, что такое Monads и как с этим бороться, и (3) ваша вторая последняя строка снова является примером одного из разных вкусов * map * У меня до сих пор нет хорошего представления. Кажется, долгий путь ушел ... – user2054578