Size: a a a

2021 March 15

M

Matrix Telegram Brid... in C++ Together 2.0
Danya
Мы знаем, да...
Felis Chaus: Похоже вот выше человек с авой генту не знает
источник

D

Danya in C++ Together 2.0
Matrix Telegram Bridge
Felis Chaus: Похоже вот выше человек с авой генту не знает
Знает
источник

D

Danya in C++ Together 2.0
Он про другое
источник

DP

Denis Paukaev in C++ Together 2.0
хотелось бы чего-то такого

Prelude> let func :: Integer -> String; func n = if n then "a" else "b"

<interactive>:6:44:
   Couldn't match expected type ‘Bool’ with actual type ‘Integer’
   In the expression: n
   In the expression: if n then "a" else "b"
источник

D

Danya in C++ Together 2.0
Denis Paukaev
хотелось бы чего-то такого

Prelude> let func :: Integer -> String; func n = if n then "a" else "b"

<interactive>:6:44:
   Couldn't match expected type ‘Bool’ with actual type ‘Integer’
   In the expression: n
   In the expression: if n then "a" else "b"
Ля это что
источник

W

Wild_Wind in C++ Together 2.0
Matrix Telegram Bridge
Felis Chaus: Мне он кажется легче, чем c++ в схожих библиотеках.
У него одна большая проблема - динамическая типизация.
Все есть PyObject. И defined в рантайме.
Из-за чего нет типобезопасности. Для этого приходится покрывать 100% кода тестами, т.к. иначе ты не пройдешься по всем типам объектов.
А в плюсах очень много валидации можно вынести в типы. И получать ошибки на более раннем этапе - при компиляции.
источник

D

Danya in C++ Together 2.0
Вроде не хаскелль
источник

DP

Denis Paukaev in C++ Together 2.0
Danya
Вроде не хаскелль
он)
источник

D

Danya in C++ Together 2.0
А, не видел там let просто
источник

DP

Denis Paukaev in C++ Together 2.0
костыль для старых версий интерпритатора
источник

DP

Denis Paukaev in C++ Together 2.0
в новых и без let заведётся
источник

CD

Constantine Drozdov in C++ Together 2.0
Denis Paukaev
хотелось бы чего-то такого

Prelude> let func :: Integer -> String; func n = if n then "a" else "b"

<interactive>:6:44:
   Couldn't match expected type ‘Bool’ with actual type ‘Integer’
   In the expression: n
   In the expression: if n then "a" else "b"
ну это перебор, в дизайне стоит задаваться вопросом "можем ли мы понять, что пользователь имел в виду"
источник

M

Matrix Telegram Brid... in C++ Together 2.0
Wild_Wind
У него одна большая проблема - динамическая типизация.
Все есть PyObject. И defined в рантайме.
Из-за чего нет типобезопасности. Для этого приходится покрывать 100% кода тестами, т.к. иначе ты не пройдешься по всем типам объектов.
А в плюсах очень много валидации можно вынести в типы. И получать ошибки на более раннем этапе - при компиляции.
Felis Chaus: Либо вручную проверять типы
источник

DP

Denis Paukaev in C++ Together 2.0
Wild_Wind
У него одна большая проблема - динамическая типизация.
Все есть PyObject. И defined в рантайме.
Из-за чего нет типобезопасности. Для этого приходится покрывать 100% кода тестами, т.к. иначе ты не пройдешься по всем типам объектов.
А в плюсах очень много валидации можно вынести в типы. И получать ошибки на более раннем этапе - при компиляции.
ну так не надо писать функции которые по вторникам принимают инт а по средам стринг
источник

DP

Denis Paukaev in C++ Together 2.0
+ аннотации типов конечно
источник

DP

Denis Paukaev in C++ Together 2.0
Constantine Drozdov
ну это перебор, в дизайне стоит задаваться вопросом "можем ли мы понять, что пользователь имел в виду"
да мы всегда можем понять, тут вопрос что лучше
источник

W

Wild_Wind in C++ Together 2.0
Matrix Telegram Bridge
Felis Chaus: Либо вручную проверять типы
Как?
Их нету. Они есть только при исполнении.
А моделировать весь граф потока исполнения в голове - не всегда тривиальная задача.
источник

M

Matrix Telegram Brid... in C++ Together 2.0
Wild_Wind
Как?
Их нету. Они есть только при исполнении.
А моделировать весь граф потока исполнения в голове - не всегда тривиальная задача.
Felis Chaus: Если функция должна принимать только определенный тип, то проверить можно. Если нет, то надо написать так функцию, что бы она смогла.
источник

W

Wild_Wind in C++ Together 2.0
Matrix Telegram Bridge
Felis Chaus: Если функция должна принимать только определенный тип, то проверить можно. Если нет, то надо написать так функцию, что бы она смогла.
Вот. Надо самому руками валидировать не только данные, но и типы.
В плюсах валидацию типов делает компилятор.
источник

M

Matrix Telegram Brid... in C++ Together 2.0
Wild_Wind
Вот. Надо самому руками валидировать не только данные, но и типы.
В плюсах валидацию типов делает компилятор.
Felis Chaus: В плюсах это делается ещё на этапе написания кода в нормальной ide, в python частично тоже.
источник