Size: a a a

2020 June 29

ЕС

Егор Савельев... in rust_offtopic
Лет через 10 может появиться.
источник

ЕС

Егор Савельев... in rust_offtopic
Но с завтипами слишком много проблем, а ресерча совсем мало.
источник

SP

Stanislav Popov in rust_offtopic
Егор Савельев
А теперь объясняю на пальцах. Допустим у нас есть некий код:
foo = let a = 10 in a
Итак, давайте подумаем какой тип у переменной a. Вспомним определение типа: тип - это множество значений, которые принимает переменная. Посмотрим на пример. Логично предположить, что a имеет тип { 10 }. Но! Она имеет тип Int. То есть компилятор на полном серьезе считает что 'а' может быть в данном случае -268. Поразительно, не правда ли?
в данном случае тип 10, да, и тебе приходится изза несовершенства языков откатываться к динамике увеличивая возможные варианты до инта

ты снова ошибаешься говоря что расстояние от 10 до инта такой же огромное как и расстояние от инта до Option<Int> или int| float или UserModel vs user_id
источник

ЕС

Егор Савельев... in rust_offtopic
Stanislav Popov
в данном случае тип 10, да, и тебе приходится изза несовершенства языков откатываться к динамике увеличивая возможные варианты до инта

ты снова ошибаешься говоря что расстояние от 10 до инта такой же огромное как и расстояние от инта до Option<Int> или int| float или UserModel vs user_id
Разница между Int и Option<Int> всего лишь на единицу
источник

SP

Stanislav Popov in rust_offtopic
Егор Савельев
Разница между Int и Option<Int> всего лишь на единицу
нет. разница в том будет ли у тебя лишние ифы в десятке мест или нет
источник

ЕС

Егор Савельев... in rust_offtopic
И я не утверждал ничего такого.
источник

ЕС

Егор Савельев... in rust_offtopic
Stanislav Popov
нет. разница в том будет ли у тебя лишние ифы в десятке мест или нет
Давай ты сожжешь сам свое соломенное чучело.
источник

SP

Stanislav Popov in rust_offtopic
ану ану
источник

SP

Stanislav Popov in rust_offtopic
по твоему Option<Int> не требует дополнительной логики почти всегда?
источник

ЕС

Егор Савельев... in rust_offtopic
Егор Савельев
Давай ты сожжешь сам свое соломенное чучело.
this
источник

ЕС

Егор Савельев... in rust_offtopic
Я ничего подобного не утверждал.
источник

ЕС

Егор Савельев... in rust_offtopic
Когда я смогу иметь в поле рекорда число от -10 до 5 при этом с полным затиранием завтипов и без свистоплясок, можно будет говорить что статика хороша. До тех пор, это неполноценная вещь.
источник

DS

Doge Shibu in rust_offtopic
Егор Савельев
А теперь объясняю на пальцах. Допустим у нас есть некий код:
foo = let a = 10 in a
Итак, давайте подумаем какой тип у переменной a. Вспомним определение типа: тип - это множество значений, которые принимает переменная. Посмотрим на пример. Логично предположить, что a имеет тип { 10 }. Но! Она имеет тип Int. То есть компилятор на полном серьезе считает что 'а' может быть в данном случае -268. Поразительно, не правда ли?
Ты хочешь невозможного в общем случае, если ты говоришь про вывод типов. Потому что вывод типов в присутствии зависимых типов физически не возможен.
источник

DS

Doge Shibu in rust_offtopic
По более-менее очевидным причинам
источник

ЕС

Егор Савельев... in rust_offtopic
К слову статика идёт рядом с парсингом. Когда в языках начнет отсутствовать валидация, и будет только парсинг, тогда можно сказать что статическая типизация победила.
источник

ЕС

Егор Савельев... in rust_offtopic
Doge Shibu
Ты хочешь невозможного в общем случае, если ты говоришь про вывод типов. Потому что вывод типов в присутствии зависимых типов физически не возможен.
По хиндли миднера это спокойно выводится, если бы число 10 имело тип 10 а не Int
источник

SP

Stanislav Popov in rust_offtopic
Егор Савельев
Когда я смогу иметь в поле рекорда число от -10 до 5 при этом с полным затиранием завтипов и без свистоплясок, можно будет говорить что статика хороша. До тех пор, это неполноценная вещь.
ты утверждаешь что типы не ограничивают data cadinality (сорри не помню точный термин) в *достаточной для тебя мере*. но идея их в том чтобы ограничить её в достаточной мере для кода. чистый тип инт отметает миллион проверок и этим он ценен. если у тебя код требует разделения инта на множества ты всегда можешь сделать ньютайп
источник

ЕС

Егор Савельев... in rust_offtopic
Stanislav Popov
ты утверждаешь что типы не ограничивают data cadinality (сорри не помню точный термин) в *достаточной для тебя мере*. но идея их в том чтобы ограничить её в достаточной мере для кода. чистый тип инт отметает миллион проверок и этим он ценен. если у тебя код требует разделения инта на множества ты всегда можешь сделать ньютайп
Ньютайп будет NewInt(Int)
источник

ЕС

Егор Савельев... in rust_offtopic
Который ничем не отличается от обычного инта.
источник

DS

Doge Shibu in rust_offtopic
Егор Савельев
По хиндли миднера это спокойно выводится, если бы число 10 имело тип 10 а не Int
Как только ты захочешь что-то больше, чем просто литеральные типы (которые в той же скале есть и выводятся, если это нужно), то возможность выводить типы повсюду ты потеряешь.

И да, даже чуть сильнее система типов, чем у хаскель 98 и т.п. и вывод типов становится невыводимым.
источник