У меня есть функция, которая имеет подписьВозьмем один последующее значение из списка дополнительных Парсеров
tryParseAllFilesInDir :: FilePath -> [Parsec ByteString() (Maybe a)]
Он пытается проанализировать все файлы в директории с определенной Parser
. Это то, что только один файл на самом деле будет успешным, но я не знаю, какой файл во время выполнения.
Я хочу взять список необязательных парсеров и вынести только следующее значение параметра Parser. Я не знаю, какие функции я бы использовал для достижения этого.
Мне как-то нужно идти от [Parsec ByteString() (Maybe a)] -> [Maybe a]
, а затем [Maybe a] -> Just a
.
Если есть лучший подход к этому, я был бы признателен за это.
Вы говорите «конкретный парсер», вы имеете в виду, что есть только один парсер, который должен применяться к каждому файлу? В таком случае, зачем вам нужен список парсеров? – zudov
@zudov Да проверяется только один конкретный парсер. Но он используется для нескольких файлов в каталоге. – tolgap