LINUX.ORG.RU

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

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

Не вижу тут оптимизаций

Ок, как написать Maybe так чтоб для некоего «newtype NotNullInt = NotNullInt Int» Maybe NotNullInt представлялся в памяти как Int и кодировал Nothing как 0? В расте такое реализовано. В хаскеле такое не возможно в принципе, так как для того чтоб реализовать монаду, Maybe должен быть параметричным и не может быть реализован по-разному для разных параметров типа. Тоесть можно написать тип MaybeNotNullInt, но невозможно реализовать этим типом монаду уже никак, хоть убейся

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

Не вижу тут оптимизаций

Ок, как написать Maybe так чтоб для некоего «newtype NotNullInt = Int» Maybe NotNullInt представлялся в памяти как Int и кодировал Nothing как 0? В расте такое реализовано. В хаскеле такое не возможно в принципе, так как для того чтоб реализовать монаду, Maybe должен быть параметричным и не может быть реализован по-разному для разных параметров типа. Тоесть можно написать тип MaybeNotNullInt, но невозможно реализовать этим типом монаду уже никак, хоть убейся