Функция fromJust
в Data.Maybe
определяется следующим образом:
fromJust :: Maybe a -> a
fromJust Nothing = error "Maybe.fromJust: Nothing"
fromJust (Just x) = x
Согласно моему пониманию шаблона сопоставление (сопоставление происходит сверху вниз) Я бы изменил порядок двух определений. Поскольку обычно «Ничто-часть» не совпадает в ситуации «точно так же», но она всегда проверяется до того, как достигается второе определение.
Не могли бы вы прояснить мою ошибку в рассуждениях? Спасибо.
Изменить:
Пример:
Предположим, у меня есть файл с миллионом чисел типа Int
на строку, и y нужны эти числа (как Int
, а не String
) в моей программе для других вещей. .
import qualified Data.ByteString.Lazy.Char8 as L
readInt = fst . fromJust . L.readInt
-- more stuff
С приведенным выше определением fromJust
мне нужно больше времени, чтобы читать числа, не так ли?