Size: a a a

2020 November 11

a

adam in Haskell
А, не распарсил, не нужно читать чатики и параллельно работать
источник

AV

Alexander Vershilov in Haskell
Без всех этих, а давайте запилим струкруру данных и для неё интерпретатор или большой тайпкласс и вы напишите 15 инстансов
источник

AV

Alexander Vershilov in Haskell
Velvet Darkness
Хочу тип, который представляет натуральной число, которое может уместиться в n бит. А-ля Data.Word16, только WordN и шоб по рукам било, если out of bounds. Нашел https://hackage.haskell.org/package/finite-typelits - но есть некоторое ощущение что будет тупить-тормозить и с type-level nats я не умею.
1) Оно таки накладные расходы в рантайме? O(1) фиг с ним
2) Чего покурить по type level nats?
3) Или лучше пораскуривать clash? Его прелюд вроде можно в обычных программах юзать
finite-nums выглядит как то, что более-менее нормально будет работать
источник

VD

Velvet Darkness in Haskell
Alexander Vershilov
finite-nums выглядит как то, что более-менее нормально будет работать
Что-то нету такого в хакадже
источник

AV

Alexander Vershilov in Haskell
источник

к

кана in Haskell
Velvet Darkness
Хочу тип, который представляет натуральной число, которое может уместиться в n бит. А-ля Data.Word16, только WordN и шоб по рукам било, если out of bounds. Нашел https://hackage.haskell.org/package/finite-typelits - но есть некоторое ощущение что будет тупить-тормозить и с type-level nats я не умею.
1) Оно таки накладные расходы в рантайме? O(1) фиг с ним
2) Чего покурить по type level nats?
3) Или лучше пораскуривать clash? Его прелюд вроде можно в обычных программах юзать
сделай тупо одно семейство просто
источник

VD

Velvet Darkness in Haskell
кана
сделай тупо одно семейство просто
Вот сейчас непонятно
источник

к

кана in Haskell
type family WordN n where
 WordN 16 = Word16
 WordN 32 = Word32
 ...
источник

к

кана in Haskell
или нужно произвольное число вообще?
источник

к

кана in Haskell
типа Word7?
источник

VD

Velvet Darkness in Haskell
Вообще произвольное, но их конечное кол-во. А с тайпфемили оно разве будет ругаться, если я попробую в WordN 16 засунуть 67000?
источник

к

кана in Haskell
а нет, упустил эту часть
источник

VD

Velvet Darkness in Haskell
Ну походу надо finite-typelits брать. И почитать что-нибудь type level nats чтоб понять как это работает
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
Вообще произвольное, но их конечное кол-во. А с тайпфемили оно разве будет ругаться, если я попробую в WordN 16 засунуть 67000?
будет ругаться при попытке работать со значениями такого типа
источник

к

кана in Haskell
Jerzy Syrowiecki
будет ругаться при попытке работать со значениями такого типа
не, он про значение, чтобы 67000 :: Word16 падало
источник

к

кана in Haskell
а он не ругается
источник

JS

Jerzy Syrowiecki in Haskell
ругаться надо в компиляции или в исполнении?
источник

TZ

Timofey Zakrevskiy in Haskell
А написать свою обёртку и экспозить только смарт-конструктор пойдёт?
источник

VD

Velvet Darkness in Haskell
Jerzy Syrowiecki
ругаться надо в компиляции или в исполнении?
Желательно в компиляции. Отлавливать рантаймовую фигню в хаскелле я как-то не люблю
источник

VD

Velvet Darkness in Haskell
Timofey Zakrevskiy
А написать свою обёртку и экспозить только смарт-конструктор пойдёт?
По идее да, но с арифметикой геморно будет, мне кажется
источник