Сопоставление с образцом в определении fromJust

Функция 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 мне нужно больше времени, чтобы читать числа, не так ли?

5
задан Jogusa 8 June 2011 в 17:24
поделиться