Size: a a a

2020 December 15

AA

A64m AL256m qn<co... in Haskell
никакой компилятор хаскеля не сможет
источник

AA

A64m AL256m qn<co... in Haskell
в хаскеле всякие полиморфные рекурсии, хкт и экзистенциальные типы
источник

MK

Maxim Koltsov in Haskell
опять академики всё испортили, понятно
источник

KV

Kirill Valyavin in Haskell
> The main restriction is that you can't pass a primitive value to a polymorphic function or store one in a polymorphic data type. This rules out things like [Int#] (i.e. lists of primitive integers). The reason for this restriction is that polymorphic arguments and constructor fields are assumed to be pointers: if an unboxed integer is stored in one of these, the garbage collector would attempt to follow it, leading to unpredictable space leaks. Or a seq operation on the polymorphic component may attempt to dereference the pointer, with disastrous results. Even worse, the unboxed value might be larger than a pointer (Double# for instance).
источник

к

кана in Haskell
в плюсы на шаблонах наверняка все смогли бы!
источник

AA

A64m AL256m qn<co... in Haskell
кана
в плюсы на шаблонах наверняка все смогли бы!
ну так они не могут
источник

DB

Danil Berestov in Haskell
Kirill Valyavin
> The main restriction is that you can't pass a primitive value to a polymorphic function or store one in a polymorphic data type. This rules out things like [Int#] (i.e. lists of primitive integers). The reason for this restriction is that polymorphic arguments and constructor fields are assumed to be pointers: if an unboxed integer is stored in one of these, the garbage collector would attempt to follow it, leading to unpredictable space leaks. Or a seq operation on the polymorphic component may attempt to dereference the pointer, with disastrous results. Even worse, the unboxed value might be larger than a pointer (Double# for instance).
Теперь стало яснее, да. А то всё этот акадимический троллинг!
источник

KV

Kirill Valyavin in Haskell
Ну это не совсем объясняет происходящее, это так
источник

MK

Maxim Koltsov in Haskell
A64m AL256m qn I0
только для ссылок
вообще-то вот тут уже был этот же самый ответ
источник

KV

Kirill Valyavin in Haskell
Списки-то заведомо не левити полиморфные
источник

KV

Kirill Valyavin in Haskell
Дело в том, почему они не могут быть полиморфные
источник

DB

Danil Berestov in Haskell
Maxim Koltsov
вообще-то вот тут уже был этот же самый ответ
Ну а чего мне тогда то понятнее, чем енто?(
источник

AA

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

AA

A64m AL256m qn<co... in Haskell
Danil Berestov
Ну а чего мне тогда то понятнее, чем енто?(
на английском всегда понятнее
источник

DB

Danil Berestov in Haskell
A64m AL256m qn I0
на английском всегда понятнее
как русский православный человек, не могу согласиться
источник

к

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

к

кана in Haskell
то есть сам обрабатывать полиморфные и специализированные примитивные случаи по-разному
источник

MK

Maxim Koltsov in Haskell
так в гхц полиморфизм не на специализациях основан
источник

MK

Maxim Koltsov in Haskell
много изменений пришлось бы делать
источник

к

кана in Haskell
я понимаю, но ничего не мешает же их приделать
источник