Size: a a a

2021 February 18

DF

Denis Fakhrtdinov in pro.elixir
Есть как минимум два применения рекордов, где они уделывают стракты. Это работа с ETS и стейты тайтлупов ака ген_серверов.
источник

A ß in pro.elixir
ничего, в отп 30 добавят рекорды как сущности уровня вм и тогда заживем
источник

Е

Евгений in pro.elixir
Lama Lover
Бред, потому что компилятор не знает какой тип рекорда у переменной (да и вообще рекорд ли там)
Тоже самое касается и структур. В чем разница?
источник

LL

Lama Lover in pro.elixir
В этом, кстати, и есть основное отличие рекордов от структур
У структуры доступ к полю field это всегда Map.fetch!(struct, field) и это не зависит от типа структуры, то есть одинаково для любой структуры и мапы
А у рекорда доступ к полю field зависит от типа рекорда, потому что у некоторых это второй элемент в тупле, а у некоторых третий, и т.д.
источник

LL

Lama Lover in pro.elixir
Евгений
Тоже самое касается и структур. В чем разница?
Подумой
(чуть выше я оставил сообщение-подсказку)
источник

Е

Евгений in pro.elixir
В том же Gleam, для кастомных типов наоборот ушли от мап в сторону кортежей.
источник

AP

Andrey Pavlov in pro.elixir
Denis Fakhrtdinov
Есть как минимум два применения рекордов, где они уделывают стракты. Это работа с ETS и стейты тайтлупов ака ген_серверов.
ets, да, а стейты в таплах при code_change мигрировать то еще удовольствие. Хотя о чем я? никто же пользуется этим)
источник

LL

Lama Lover in pro.elixir
Евгений
В том же Gleam, для кастомных типов наоборот ушли от мап в сторону кортежей.
Может потому что у него статическая типизация и есть вывод типов в компиляторе?
источник

DF

Denis Fakhrtdinov in pro.elixir
Пользуются действительно редко. А уж в эликсире и подавно.
источник

Е

Евгений in pro.elixir
Lama Lover
Может потому что у него статическая типизация и есть вывод типов в компиляторе?
Дык структуры это и есть попытка добавить в эликсир некое подобие такой типизации, включая полиморфизм и фиксированный список полей, с фиксированными же значениями по умолчанию.
источник

Е

Евгений in pro.elixir
Для всего остального структуры не нужны, достаточно просто мапы.
источник

Е

Евгений in pro.elixir
Если функции плевать на тип структуры, то зачем вообще структура?
источник

LL

Lama Lover in pro.elixir
Евгений
Дык структуры это и есть попытка добавить в эликсир некое подобие такой типизации, включая полиморфизм и фиксированный список полей, с фиксированными же значениями по умолчанию.
Не совсем, между этими видами полиморфизмов есть значительные отличия
источник

Е

Евгений in pro.elixir
В общем, полагаю, мы поняли позиции друг друга. На этом предлагаю и закончить.
источник

DF

Denis Fakhrtdinov in pro.elixir
Тащемта, всё отличие мап от структур — это протоколы, которые не нужны чуть более чем полностью.
источник

DF

Denis Fakhrtdinov in pro.elixir
У них полтора применения, одно из которых — это прикрутить баг.
источник

Е

Евгений in pro.elixir
Denis Fakhrtdinov
Тащемта, всё отличие мап от структур — это протоколы, которые не нужны чуть более чем полностью.
Причем эти протоколы можно аналогично и для рекордов сделать.
источник

DF

Denis Fakhrtdinov in pro.elixir
Они и были прикручены, пока их не выпилили в erl23, кажется.
источник

DF

Denis Fakhrtdinov in pro.elixir
Так называемые tuple modules.
источник

Е

Евгений in pro.elixir
Возможно были какие-то веские причины, которые я упускаю, но они явно не те, которые были приведены в этом чате.
источник