Size: a a a

Compiler Development

2021 July 07

П

Пух in Compiler Development
Та вроде тут на типах все, не?
источник

П

Пух in Compiler Development
Трейтами такое точно нормально делается
источник

ДК

Дикий Кот in Compiler Development
Это не типы из теории типов. Это просто метки значений и динамическая диспетчеризация
источник

П

Пух in Compiler Development
!
источник

ДК

Дикий Кот in Compiler Development
Не делается. У трейтов фиксированные возвращаемые типы
источник

[

[BRM]White Rabbit in Compiler Development
f :: Num a => a -> a -> a
f x y = x * 2 + y
источник

[

[BRM]White Rabbit in Compiler Development
хаскель
источник

П

Пух in Compiler Development
Ассоциативные типы есть, если раст
источник

[

[BRM]White Rabbit in Compiler Development
все типы стираются при компиляции
источник

П

Пух in Compiler Development
Тот же Add это трейт
источник

[

[BRM]White Rabbit in Compiler Development
бтв, такое даже в VB.Net можно сделать
источник

ДК

Дикий Кот in Compiler Development
Я не буду пересказывать руководство по Julia. Читайте сами. Но такую f не написать для умножения числа на матрицу.
источник

П

Пух in Compiler Development
Обобщенное программирование в целом не в динамике придумали
источник

[

[BRM]White Rabbit in Compiler Development
зачем мне умножать число на матрицу в рамках обобщённой функции?
а если надо, то я просто сделаю инстанс Num для матрицы и всё заработает
источник

П

Пух in Compiler Development
Mul<Rhs = Matrix>
источник

ДК

Дикий Кот in Compiler Development
Они, всё равно, наперёд заданные. А тут больше свободы.

Впрочем, я не собираюсь спорить. Просто есть другие способы работать с диспетчеризацией, кроме типов. И не всегда программист должен их писать вручную
источник

П

Пух in Compiler Development
Кто-то где-то все равно написал варианты в твоем диспатче
источник

[

[BRM]White Rabbit in Compiler Development
"свободы"
источник

[

[BRM]White Rabbit in Compiler Development
нет никакой свободы
источник

П

Пух in Compiler Development
В питоне вон свобода через тайпсвитч
источник