Size: a a a

2021 February 16

AA

A64m AL256m qn<co... in Haskell
Vladislav Zavialov
Да понятно, что можно, но с экстеншеном появится в этом актуальность
это и с дупликейт рекорд филдс актуально уже, тем более что альтернативный способ с указанием типа решили запретить
источник

JS

Jerzy Syrowiecki in Haskell
зато теперь можно будет разрешить (наверно, ещё одним расширением) поля с именами type, case, data и прочие. NFP/RWC с ними не будет работать, зато c JSON будет легче работать
источник

JS

Jerzy Syrowiecki in Haskell
а вот record-dot может и совладать с ними
источник

JS

Jerzy Syrowiecki in Haskell
Vladislav Zavialov
Я правильно понимаю, что вместо fld можно будет всегда написать \R{fld}->fld с RecordFieldPuns?
можно чуть проще: (\Rec{..} -> fld)
источник

AA

A64m AL256m qn<co... in Haskell
переключателей которые надо повернуть чтоб рекорды использовать все больше и больше
источник

JS

Jerzy Syrowiecki in Haskell
GHC2100 нас спасёт
источник

VD

Velvet Darkness in Haskell
Обязательно спасёт. Но потом
источник

IR

IC Rainbow in Haskell
Jerzy Syrowiecki
можно чуть проще: (\Rec{..} -> fld)
Или fld
источник

AA

A64m AL256m qn<co... in Haskell
IC Rainbow
Или fld
речь про экстеншон который это запрещает как раз
источник

JS

Jerzy Syrowiecki in Haskell
IC Rainbow
Или fld
это неудобный способ для полей с удобными именами
источник

KV

Kirill Valyavin in Haskell
NoFieldSelectors влияют на скорость компиляции?
источник

JS

Jerzy Syrowiecki in Haskell
теоретически должно быть меньше символов в области видимости, поиск быстрее
источник

к

кана in Haskell
Kirill Valyavin
NoFieldSelectors влияют на скорость компиляции?
да, кстати, может
источник

к

кана in Haskell
насколько я знаю, сейчас на каждый селектор генерируется вот такой код

data X = X { a, b, c :: Int }

a :: X -> Int
a x =
 case x of
   X { a = a, b = b, c = c } -> a
b :: X -> Int
b x =
 case x of
   X { a = a, b = b, c = c } -> b
c :: X -> Int
c x =
 case x of
   X { a = a, b = b, c = c } -> c
источник

к

кана in Haskell
и это квадратично увеличивает количество термов для больших рекордов в корке
источник

KV

Kirill Valyavin in Haskell
Понятия не имею почему, но я читал, что при компиляции рекордов какая-то плохая асимптотика по полям, мб это поможет
источник

KV

Kirill Valyavin in Haskell
кана
и это квадратично увеличивает количество термов для больших рекордов в корке
Похоже, да
источник

к

кана in Haskell
поэтому вот эту штуку пилят сейчас - https://github.com/well-typed/large-records
источник

KV

Kirill Valyavin in Haskell
Будем надеяться
источник

VD

Velvet Darkness in Haskell
Когда-то давно один тимлид на вопрос "как оптимизировать что-то там" считал верным ответ "уменьшать n", а не "улучшать асимптоту", как считал я и я его за это считал наркоманом.
источник