После программирования мне в математике очень странно с синтаксисом.
Для начала в общем случае нельзя отличить умножение от применения функции.
то есть спокойно может быть как применением функции так и умножением на переменную .
Ок, если посмотреть на всякую линейную алгебру, можно посмотреть на применение функции как на умножение. То есть всё логично, просто надо смотреть на тип .
Дальше тоже всё хорошо, это применение функции обратной . Ну и дальше логично предположить что . И в дискретной математике и в линейной алгебре так вроде принято.
[А отдельное веселье в том, что нет синтаксиса для многобуквенных переменных и функций и нормального определения скоупов. А, и иногда параметры писать влом, так что где функция, а где переменная можно догадаться только по контексту.]
Ок, ладно. Но в итоге всё сколько-то последовательно. А теперь встречайте тригонометрические функции (и логарифм, но плевать на него). Они многобуквенные. А как их отличить от перемножения переменных s
, i
и n
? Называйте переменные как-то иначе. А и . Но это арксинус. А и их можно применять без скобок, а нормальные почему-то нельзя.
И если подумать это очень классный синтаксис для функций. Например почему бы не делать: ? Нельзя отличить от умножения? Так и сейчас нельзя. Тогда для обратной функции и каррирования на себя нужен отдельный синтаксис, но и хер бы с ним.
На самом деле математические знаки в первую очередь писались от руки, так что важнее чтобы они легко и быстро писались и были примерно понятны. Чёткая их формализация никому толком не была нужна. Во всяком случае мне так кажется.
Если подумать это классическое в чужой монастырь со своим уставом.
Comments (7)
Со скоупами всё хорошо: доказательство теоремы это скоуп, в котором могут быть внутренние определения. Многобуквенные символы обычно используются для глобальных констант, например, группа SO3 или категория Set. Очень полезная фича - использование разных шрифтов для разных типов.
я скорее про более практическое. например если вычислять сложный интеграл посреди доказательства с несколькими уже объявленными функциями и переменными, то начинают кончаться имена. начать называть словами я не могу и ограничить скоуп определения я тоже не могу. по факту когда кончаются латинские буквы пользуются греческими. и есть ещё константа א, потому что кому-то не хватило двух алфавитов 😁
Ну тоже там лемма объявляется или ещё какой скоуп. Если приходится одновременно использовать больше десятка переменных, это bad smell
Не думаю, что математиков сильно заботит "цикломатическая сложность" их "кода" и подобное ☺ По крайней мере не слышал об использовании подобных метрик.
Сложность ограничена размером головы ☺
Есть интуитивное представление о простых и сложных, красивых и некрасивых доказательствах
Есть системы формального доказательства со встроенным языками программирования и "программистским" синтаксисом для математических конструкций, например Coq
А еще математиков не волнует, что их код кто-то другой будет совершенствовать. Пишут всегда с нуля и на один раз