Size: a a a

2021 May 18

ŹR

Źmićer Rubinštejn in pro.elixir
И оно скомпилируется
источник

AB

Alex Bubnov in pro.elixir
почему ты разделяешь "интерфейсы" и "типы данных"?
источник

A ß in pro.elixir
потому что в каком нибудь SML вообще нету интерфейсов, но зато есть структурная типизация
источник

AB

Alex Bubnov in pro.elixir
но это же не значит, что интерфейсы - не типы данных.
источник

Е

Евгений in pro.elixir
Так понятнее. Да.
источник

A ß in pro.elixir
интерфейс гарантированно не является типом данных
источник

Е

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

AB

Alex Bubnov in pro.elixir
таки они и позволяют, да.
источник

A ß in pro.elixir
интерфейс может быть типом в определенном смысле, но тип данных подразумевает какое-то конкретное размещение в памяти конкретных данных
источник

Е

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

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

Е

Евгений in pro.elixir
Но я понял что имел в виду @nwalker говоря о структурной типизации.
По крайней мере я так думаю, что понял.
источник

Е

Евгений in pro.elixir
Спорное определение типа данных.
источник

A ß in pro.elixir
предложите альтернативное
источник

AB

Alex Bubnov in pro.elixir
эм. в эрланге вот два типа строк, с кардинально разным "размещением в памяти конкретных данных", при это оба вполне себе семантически строки, пусть и с разными О() и нюансами, и можно написать кусок кода, которому будет безразлично, которая это из реализаций строк.
источник

Е

Евгений in pro.elixir
Зачем кокнретное размещение конкретных данных? Как же тогда будет работать субтипирование?
источник

AB

Alex Bubnov in pro.elixir
то есть, кажется, что типы данных это не контракты на "конкретное размещение в памяти"
источник

Е

Евгений in pro.elixir
Тип Number не подразумевает какое-то определенное хранение определенных данных.
источник

A ß in pro.elixir
а может и никак, подтипы это не неотъемлемый атрибут системы типов
источник

A ß in pro.elixir
это типы в обывательском смысле, определенный набор контрактов, интерфейсов, функций и т. д.
источник