Size: a a a

2021 March 07

к

кана in Haskell
fromInteger 0
источник

KV

Kirill Valyavin in Haskell
"если бы это было важно"
А оно не должно быть важно, блин
источник

к

кана in Haskell
ну, это не так важно для опроса, должно быть оно важным или нет
источник

к

кана in Haskell
независимо от того, должны ли быть это важным, вопрос про "если бы было важным"
источник

к

кана in Haskell
filtered тоже не должен быть траверсалом, и паттерн матчинг тоже должен быть всегда полным, и undefined быть не должно, и head должен возвращать maybe или требовать непустой список

мы находимся в мире, где Num в хаскеле это не только законный класс, но и единственный нормальный способ определять для типов числовые литералы, и переопределять +
источник

KV

Kirill Valyavin in Haskell
Если Вы пишете какой-то свой тип, который заведомо не подчиняется числовым законам (даже приблизительно), пишете для него инстанс числа, и хотите использовать с ним числовую функцию, о которой Вы случайно знаете, что её реализация случайно уважает какие-то желаемые Вами инварианты — ну это жесть какая-то
источник

KV

Kirill Valyavin in Haskell
кана
filtered тоже не должен быть траверсалом, и паттерн матчинг тоже должен быть всегда полным, и undefined быть не должно, и head должен возвращать maybe или требовать непустой список

мы находимся в мире, где Num в хаскеле это не только законный класс, но и единственный нормальный способ определять для типов числовые литералы, и переопределять +
Пользователь filtered не должен полагаться на то, каким именно образом реализация нарушает законы траверсалов, он просто должен знать, что законы нарушаются, и всё
источник

KV

Kirill Valyavin in Haskell
> мы находимся в мире, где Num в хаскеле это не только законный класс, но и единственный нормальный способ определять для типов числовые литералы, и переопределять +

Ну я понимаю, что определить свой собственный sum с нужными свойствами — это трагедия вселенского масштаба, да
источник

к

кана in Haskell
ну, так можно про что угодно сказать, sum это лишь пример
источник

к

кана in Haskell
и префиксы в именах это не трагедия вселенского масштаба, и рекорды, и время компиляции это не проблема вселенского масштаба, со всем можно свыкнуться и перетерпеть
источник

к

кана in Haskell
в целом не очень понимаю зачем нужны фичи в языках тогда, никакой трагедии вселенского мастштаба они не решают
источник

KV

Kirill Valyavin in Haskell
"я не хочу писать свой sum в одну строчку" — это не очень хорошее оправдание для "дайте мне полагаться на несущественные детали реализации"
источник

JS

Jerzy Syrowiecki in Haskell
кана
filtered тоже не должен быть траверсалом, и паттерн матчинг тоже должен быть всегда полным, и undefined быть не должно, и head должен возвращать maybe или требовать непустой список

мы находимся в мире, где Num в хаскеле это не только законный класс, но и единственный нормальный способ определять для типов числовые литералы, и переопределять +
откуда берётся вообще задача переопределять (+)? если просто значок нравится, то можно Prelude hiding (Num)
источник

к

кана in Haskell
и без фичией хаскельных на сях писали софт
источник

к

кана in Haskell
Jerzy Syrowiecki
откуда берётся вообще задача переопределять (+)? если просто значок нравится, то можно Prelude hiding (Num)
ага, для всего модуля
источник

к

кана in Haskell
Kirill Valyavin
"я не хочу писать свой sum в одну строчку" — это не очень хорошее оправдание для "дайте мне полагаться на несущественные детали реализации"
да окей, никто не оправдывался и не требовал оправданий, я задал конкретный вопрос с конкретными вариантами ответа
источник

JS

Jerzy Syrowiecki in Haskell
кана
filtered тоже не должен быть траверсалом, и паттерн матчинг тоже должен быть всегда полным, и undefined быть не должно, и head должен возвращать maybe или требовать непустой список

мы находимся в мире, где Num в хаскеле это не только законный класс, но и единственный нормальный способ определять для типов числовые литералы, и переопределять +
в Ivory тоже есть Num для AST, но там вызывается оптимизатор перед выхлопом, так что x+0 == x эффективно выполняется. почему бы тебе не сделать подобным образом?
источник

к

кана in Haskell
все остальное меня не очень интересует
источник

KV

Kirill Valyavin in Haskell
Если из класса Num убрать закон (ну так-то их там строго говоря нет, но есть рекомендуемые) о том, что fromInteger 0 это нейтральный элемент, и добавить в спецификацию соответствующих функций такое требование, что они не навешивают лишних нулей, то можно поменять, да
Но это странный какой-то Num получится
источник

к

кана in Haskell
Jerzy Syrowiecki
в Ivory тоже есть Num для AST, но там вызывается оптимизатор перед выхлопом, так что x+0 == x эффективно выполняется. почему бы тебе не сделать подобным образом?
потому что это будет нежелательным результатом для моей задачи. Валидным, но нежелательным
источник