Size: a a a

2021 March 04

J

JE$U$ in Haskell Start
Я просто хочу создать типы для определенных полей Галуа и определить алгебру
источник

к

кана in Haskell Start
data X = A | B | C | D
источник

JS

Jerzy Syrowiecki in Haskell Start
самый простой вариант —
data FourValues = Zero | One | Two | Three
источник

J

JE$U$ in Haskell Start
Вот такую штуку хочется
источник

JS

Jerzy Syrowiecki in Haskell Start
JE$U$
Вот такую штуку хочется
можно назвать значения G0..G3
источник

JS

Jerzy Syrowiecki in Haskell Start
JE$U$
Вот такую штуку хочется
если определять совместимость с литералами для своего типа, то её надо определять для любого Integer, не только 0..3
источник

JS

Jerzy Syrowiecki in Haskell Start
хотя если по остаткам, то можно попробовать
источник

J

JE$U$ in Haskell Start
Там умножение не в кольце, поэтому mod не подойдет тут
источник

JS

Jerzy Syrowiecki in Haskell Start
тогда числовые литералы лучше не трогать
источник

JS

Jerzy Syrowiecki in Haskell Start
технически можно, но не стоит
источник

J

JE$U$ in Haskell Start
То есть нельзя вот так взять и сказать - вот четыре числа, они составляют такой-то тип и вот операции с ними?
источник

JS

Jerzy Syrowiecki in Haskell Start
можно, конечно
источник

JS

Jerzy Syrowiecki in Haskell Start
только у вас же не числа, а элементы группы
источник

JS

Jerzy Syrowiecki in Haskell Start
и связь с числовыми литералами — это отдельная история
источник

J

JE$U$ in Haskell Start
Ну, так было бы удобнее, но не суть
источник

JS

Jerzy Syrowiecki in Haskell Start
JE$U$
То есть нельзя вот так взять и сказать - вот четыре числа, они составляют такой-то тип и вот операции с ними?
data GF4 = G0 | G1 | G2 | G3
источник

J

JE$U$ in Haskell Start
Тогда в инстансе, соответственно, подставляю G0…G3?
источник

JS

Jerzy Syrowiecki in Haskell Start
JE$U$
Ну, так было бы удобнее, но не суть
чтобы для своего типа писать 0, 1, 2, 3, надо определять instance Num, мне кажется, вам сейчас это создаст больше проблем, чем поможет
источник

JS

Jerzy Syrowiecki in Haskell Start
JE$U$
Тогда в инстансе, соответственно, подставляю G0…G3?
да
источник

J

JE$U$ in Haskell Start
Понял, спасибо
источник