Size: a a a

2021 March 16

JS

Jerzy Syrowiecki in Haskell
Sooqa
допустим у меня есть это
class Convertible initar supplement finit residue where
 transform :: initar -> supplement -> (finit, residue)

дальше я хочу сказать что два типа идентичны если их можно превратить один в другой без потери информации или необходимости добавлять информацию
class (forall a b . Convertible b () a (), Convertible a () b ())
  => Identical a b

Даьлше я хочу сказать что два типа обратимы если при конвертации из одного в лругой теряется информация, которая достаточна чтобы совершить обратное преобразование при условии что существует прообразование отстаток от которого достаточен чтобы превратить один тип в лругой
class (forall a b s t1 . Convertible a s b t1, Convertible b t1 a s)
  => HasTrivialInvertion a

Последнее не компилируется
лучше сказать "изоморфны", чем "идентичны"
источник

SS

Sergei Stepanenko in Haskell
А Identical должен именно идентичность в каком смысле показывать? Просто с вашим текущим определением можно тогда доказать, что List и Unit идентичны, например.
transform :: List -> Unit -> (Unit, Unit)
transform _ _ = (unit, unit)

transform :: Unit -> Unit -> (List, Unit)
transform _ _ = (nil, unit)
источник

JS

Jerzy Syrowiecki in Haskell
Sergei Stepanenko
А Identical должен именно идентичность в каком смысле показывать? Просто с вашим текущим определением можно тогда доказать, что List и Unit идентичны, например.
transform :: List -> Unit -> (Unit, Unit)
transform _ _ = (unit, unit)

transform :: Unit -> Unit -> (List, Unit)
transform _ _ = (nil, unit)
условие "без потери информации" не выполняется
источник

SS

Sergei Stepanenko in Haskell
Я так понял, условие "без потери информации" тут задаётся с помощью юнитов
источник

JS

Jerzy Syrowiecki in Haskell
Sooqa
допустим у меня есть это
class Convertible initar supplement finit residue where
 transform :: initar -> supplement -> (finit, residue)

дальше я хочу сказать что два типа идентичны если их можно превратить один в другой без потери информации или необходимости добавлять информацию
class (forall a b . Convertible b () a (), Convertible a () b ())
  => Identical a b

Даьлше я хочу сказать что два типа обратимы если при конвертации из одного в лругой теряется информация, которая достаточна чтобы совершить обратное преобразование при условии что существует прообразование отстаток от которого достаточен чтобы превратить один тип в лругой
class (forall a b s t1 . Convertible a s b t1, Convertible b t1 a s)
  => HasTrivialInvertion a

Последнее не компилируется
в последнем случае я не понял, как слова связаны с кодом
источник

JS

Jerzy Syrowiecki in Haskell
Sergei Stepanenko
Я так понял, условие "без потери информации" тут задаётся с помощью юнитов
и с помощью документации тоже. для тайпклассов это важно
источник

JS

Jerzy Syrowiecki in Haskell
Sooqa
допустим у меня есть это
class Convertible initar supplement finit residue where
 transform :: initar -> supplement -> (finit, residue)

дальше я хочу сказать что два типа идентичны если их можно превратить один в другой без потери информации или необходимости добавлять информацию
class (forall a b . Convertible b () a (), Convertible a () b ())
  => Identical a b

Даьлше я хочу сказать что два типа обратимы если при конвертации из одного в лругой теряется информация, которая достаточна чтобы совершить обратное преобразование при условии что существует прообразование отстаток от которого достаточен чтобы превратить один тип в лругой
class (forall a b s t1 . Convertible a s b t1, Convertible b t1 a s)
  => HasTrivialInvertion a

Последнее не компилируется
"два типа обратимы"

HasTrivialInvertion a -- один тип
источник

JS

Jerzy Syrowiecki in Haskell
вам нужны TF или FD, но надо сначала понять, какие именно
источник
2021 March 17

AP

Artem Pelenitsyn in Haskell
А уже обсудили что там Снойман удумал с векторными типами делать?
источник

AA

A64m AL256m qn<co... in Haskell
я не видел такого обсуждения
источник

к

кана in Haskell
Artem Pelenitsyn
А уже обсудили что там Снойман удумал с векторными типами делать?
а что такое векторные типы?
источник

A

Andrey in Haskell
Text и ByteString как обёртки над векторами
источник

АХ

Алексей Худяков... in Haskell
А где обсуждают-то?
источник

A

Andrey in Haskell
источник

VD

Velvet Darkness in Haskell
И бложепост, который он написал: https://www.snoyman.com/blog/2021/04/haskell-base-proposal/
источник

AA

A64m AL256m qn<co... in Haskell
идея сделать байтстринг оберткой над вектором уже была
источник

VD

Velvet Darkness in Haskell
Он еще в base хочет такую унифицированую штуку притащить.
источник

AA

A64m AL256m qn<co... in Haskell
снойман во многом прав, но та часть где он хочет сделать магически анбоксящийся вектор без констрейна очень смешная, конечно.
мое дело предложить идею, а над реализацией вы думайте!
источник

VD

Velvet Darkness in Haskell
Ну если сделают единую либу сразу для байтстринга, текста и вектора, пусть и по-прежнему с Boxed/Unboxed отдельно - уже наверное не так плохо будет.
источник

VD

Velvet Darkness in Haskell
Даже если не в бейз.
источник