Существует ли полная альтернатива функции `read`?
Почему функция read
завершает исполняемый файл, если он не может проанализировать его аргумент?
Мне кажется, что было бы удобнее иметь функцию типа String -> Maybe a
, которая возвращает Nothing
, если строка не может быть разобрана с типом a
, но я ничего не могу найти нравится. Что мне не хватает?
Ответы
Ответ 1
Функция, которую вы ищете, называется readMaybe
и определяется в модуле Text.Read
:
https://hackage.haskell.org/package/base-4.9.1.0/docs/Text-Read.html#v:readMaybe
Он доступен с GHC 7.6. До этого вам нужно было вызвать reads
, который возвращает (потенциально пустой) список проанализированных значений и совпадение шаблона на нем.