Size: a a a

2021 May 18

LL

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

AB

Alex Bubnov in pro.elixir
да зачем? тебе хочется писать сигнатуру для handle_info({'DOWN', ....})?
источник

Е

Евгений in pro.elixir
Не любая, какая-нибудь send может, но далеко не любая.
источник

AB

Alex Bubnov in pro.elixir
вообще, для простых (чистых) кейсов хватит dialyzer/gradualizer, а в сложных и грязных и типы никакие особенно не помогут
источник

Е

Евгений in pro.elixir
Мне хочется писать сигнатуру для calc_something(a, b, c)
источник

LL

Lama Lover in pro.elixir
receive do
 anything ->
   function(anything)
end

Тут функция function вызывается с аргументом с неизвестным типом
источник

Е

Евгений in pro.elixir
Ну так не получится так вызвать. Разве что ты сам захочешь именно так сделать, но для этого тебе придется явно в функции function прописать тип параметра Variant.
источник

Е

Евгений in pro.elixir
Но зачем делать ВСЕ функции с типами параметра Variant?
источник

LL

Lama Lover in pro.elixir
Если так не получится вызвать, то придётся описывать хэндлер для каждого возможного сообщения
источник

Е

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

Е

Евгений in pro.elixir
Да так собсно и делается в эликсире.
источник

AB

Alex Bubnov in pro.elixir
type A = {int, string};
type B = {int, string};


в языке со структурной типизацией это совместимые типы, с номинальной - нет.
источник

Е

Евгений in pro.elixir
А я, понял. Структурную еще называют утиной типизацией.
источник

LL

Lama Lover in pro.elixir
Нет
источник

Е

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

Е

Евгений in pro.elixir
Утиная точно является структурной.
источник

Е

Евгений in pro.elixir
Тип A выглядит как тип B, а значит тип A и есть тип B. Чем не структурная типизация?
источник

LL

Lama Lover in pro.elixir
источник

Е

Евгений in pro.elixir
Ну посмотри что такое утиная типизация.
источник

Е

Евгений in pro.elixir
Могу пример на том же D привести.
источник