LINUX.ORG.RU

История изменений

Исправление provaton, (текущая версия) :

Ну вот, например, в порядке бреда:

instance Num Bool where
    x + _ = x
    x * _ = x
    abs x = x
    signum x = x
    fromInteger x | x == 0 = False
                  | otherwise = True

Это объявление абсолютно валидное, теперь операция True + False будет иметь для компилятора смысл. Но если я напишу True + 2.5, то что должен делать компилятор?

Исходная версия provaton, :

Ну вот, например, в порядке бреда:

instance Num Bool where
    x + _ = x
    x - _ = not x
    x * _ = x
    abs x = x
    signum x = x
    fromInteger x | x == 0 = False
                  | otherwise = True

Это объявление абсолютно валидное, теперь операция True + False будет иметь для компилятора смысл. Но если я напишу True + 2.5, то что должен делать компилятор?