Size: a a a

2020 May 03

K0

Korvin 0x7CFE in rust_offtopic
классический наезд приверженцев динамических языков на языки со статической типизацией
источник

SS

Stanislav Sagan in rust_offtopic
Korvin 0x7CFE
это колхозное объяснение
Так чем проще объяснение тем лучше. А если ссылаться на другие умные термины то сложно
источник

K0

Korvin 0x7CFE in rust_offtopic
в том, что мол везде приходится тыкать типы (а точнее аннотации, но они не знают этого слова)
источник

K0

Korvin 0x7CFE in rust_offtopic
и что мол в том же руби я могу написать функцию просто от a и b а внутри указать a + b
источник

K0

Korvin 0x7CFE in rust_offtopic
и мол мне не надо думать какие там будут типы я выражаю идею
источник

K0

Korvin 0x7CFE in rust_offtopic
Stanislav Sagan
Так чем проще объяснение тем лучше. А если ссылаться на другие умные термины то сложно
объяснение не должно терять смысл и подменять одно другим
источник

K0

Korvin 0x7CFE in rust_offtopic
так вот теория типов позволяет ввести определение _полиморфной_ функции +: a, a → a
источник

K0

Korvin 0x7CFE in rust_offtopic
то есть для любого типа a: A  можно определить рефлексивный оператор + который будет дествовать на нем
источник

K0

Korvin 0x7CFE in rust_offtopic
это автоматом позволит типировать такие выражения как 2 + 3   и  "hello" + "world"
источник

K0

Korvin 0x7CFE in rust_offtopic
но "hello"  + 42  проверку типов уже не пройдет
источник

SS

Stanislav Sagan in rust_offtopic
Да,  a + b в руби это тоже полиморфизм но который "приведение типов"
источник

SS

Stanislav Sagan in rust_offtopic
Korvin 0x7CFE
но "hello"  + 42  проверку типов уже не пройдет
В js пройдет
источник

K0

Korvin 0x7CFE in rust_offtopic
это adhock полиморфизм и перегрузка операторов
источник

SS

Stanislav Sagan in rust_offtopic
Я понял, а что такое мономорфизация?))
источник

K0

Korvin 0x7CFE in rust_offtopic
Stanislav Sagan
В js пройдет
потому что в js определены операторы преобразования почти для всех типов
источник

K0

Korvin 0x7CFE in rust_offtopic
мономорфизация это способ переложить это абстрактнео определение на инструкции процессора не потеряв производительность
источник

K0

Korvin 0x7CFE in rust_offtopic
и выводить типы дальше
источник

K0

Korvin 0x7CFE in rust_offtopic
то есть да, при мономорфизации из полиморфной функции делают мономорфную, подставляя конкретные типы
источник

SS

Stanislav Sagan in rust_offtopic
Korvin 0x7CFE
это adhock полиморфизм и перегрузка операторов
ну я +- в этом подразобрался, ad hock это приведение типаов и вроде функции которые overide parent
источник

K0

Korvin 0x7CFE in rust_offtopic
в итоге ты получаешь не абстрактный add<T>(a, b)  а скажем add<i32>
источник