Тип положительного целого

matches возвращает true, если вся строка соответствует заданному шаблону. find пытается найти подстроку, которая соответствует шаблону.

29
задан synapse 10 August 2012 в 22:39
поделиться

1 ответ

Это - или на самом деле аналогичное стремление к типу натуральных чисел (включая 0) - на самом деле является частой жалобой на иерархию числовых классов Хаскелла, которая делает невозможным действительно чистое решение этой проблемы.

Почему? Посмотрите на определение Num:

class (Eq a, Show a) => Num a where
    (+) :: a -> a -> a
    (*) :: a -> a -> a
    (-) :: a -> a -> a
    negate :: a -> a
    abs :: a -> a
    signum :: a -> a
    fromInteger :: Integer -> a

Если вы не вернетесь к использованию error (что является плохой практикой), вы не сможете предоставить определения для (-), negate и fromInteger.

5
ответ дан Luis Casillas 10 August 2012 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: