← Timeline
Avatar placeholder
eliduvid
21-01-2021 23:18 (updated 22-01-2021 02:00)

После программирования мне в математике очень странно с синтаксисом.

Для начала в общем случае нельзя отличить умножение от применения функции.
то есть h(x+7) спокойно может быть как применением функции h так и умножением x+7 на переменную h.
Ок, если посмотреть на всякую линейную алгебру, можно посмотреть на применение функции как на умножение. То есть всё логично, просто надо смотреть на тип h.

Дальше тоже всё хорошо, h^-1(x+7) это применение функции обратной h. Ну и дальше логично предположить что h^2(x+7)=h(h(x+7)). И в дискретной математике и в линейной алгебре так вроде принято.

[А отдельное веселье в том, что нет синтаксиса для многобуквенных переменных и функций и нормального определения скоупов. А, и иногда параметры писать влом, так что где функция, а где переменная можно догадаться только по контексту.]

Ок, ладно. Но в итоге всё сколько-то последовательно. А теперь встречайте тригонометрические функции (и логарифм, но плевать на него). Они многобуквенные. А как их отличить от перемножения переменных s, i и n? Называйте переменные как-то иначе. А и sin2(x+7)=(sin(x+7))2. Но sin^-1 это арксинус. А и их можно применять без скобок, а нормальные почему-то нельзя.

И если подумать это очень классный синтаксис для функций. Например почему бы не делать: (h+1)2 x=(h(x)+1)2? Нельзя отличить от умножения? Так и сейчас нельзя. Тогда для обратной функции и каррирования на себя нужен отдельный синтаксис, но и хер бы с ним.

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

Если подумать это классическое в чужой монастырь со своим уставом.

To react or comment  View in Web Client
Comments (7)
Avatar placeholder

Со скоупами всё хорошо: доказательство теоремы это скоуп, в котором могут быть внутренние определения. Многобуквенные символы обычно используются для глобальных констант, например, группа SO3 или категория Set. Очень полезная фича - использование разных шрифтов для разных типов.

Avatar placeholder

я скорее про более практическое. например если вычислять сложный интеграл посреди доказательства с несколькими уже объявленными функциями и переменными, то начинают кончаться имена. начать называть словами я не могу и ограничить скоуп определения я тоже не могу. по факту когда кончаются латинские буквы пользуются греческими. и есть ещё константа א, потому что кому-то не хватило двух алфавитов 😁

Avatar placeholder

Ну тоже там лемма объявляется или ещё какой скоуп. Если приходится одновременно использовать больше десятка переменных, это bad smell

👍2
Avatar placeholder

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

Avatar placeholder

Сложность ограничена размером головы ☺
Есть интуитивное представление о простых и сложных, красивых и некрасивых доказательствах

👍1
Avatar placeholder

Есть системы формального доказательства со встроенным языками программирования и "программистским" синтаксисом для математических конструкций, например Coq

👍1
Avatar placeholder

А еще математиков не волнует, что их код кто-то другой будет совершенствовать. Пишут всегда с нуля и на один раз

To react or comment  View in Web Client