все какие мог найти придумать проходит.....
Задача https://stepik.org/lesson/8328/step/7?unit=1476
решение - реализация по минимуму, как описано в :i Enum
instance Enum Odd where
fromEnum (Odd x) = fromInteger ((x - 1) `div` 2)
toEnum x = (Odd ((toInteger x) * 2 + 1))
Failed. "Haskell: test #7 failed"
Из рекомендаций подсказок видел - только определить все методы класса Enum, это не сложно, просто не понятно зачем почему...
Стикер
То есть это номральная практика что минимального определения может нехватать просто из за боундов инта, и тогда надо определять все функции ? То есть минимального определения может не хватать и при этом можно реализовать инстансе
А следите за руками: если вы создаёте тип как data T = A | B | C …, то вы просто не сможете сделать его больше Int. Если же создаёте через newtype, то Enum может быть автоматически выведен на основе представляющего типа (т.е. для того, что сделано поверх Integer, Enum будет работать как в Integer).
Обсуждают сегодня