Имхо, математика очень удобный язык. Если сначала разобраться, как она работает. Разобравшись, можно писать многие штуки очень коротко. С учетом того, сколько там современных алгоритмов реализовано для самых разных областей математики, получается очень мощный пакет. Но чтобы эффективно его использовать, надо понять несколько базовых вещей. Вроде того, что все данные в математике хранятся в виде (вложенных) списков, состоящих из Head (заголовка) и собственно полей. Например, матрица — список списков. И в математике вагон команд работы со списками. Фактически реализовано все естественные вещи (вроде выбрать некоторые элементы, выкинуть, обработать определенной функцией и т.д.) и еще сверх того
Причем неважно, что за заголовок. Необязательно он должен быть
List, например,
f[x,y,z] — тоже список. Или что деятельность ядра при обработке входа заключаетcя в применении всех подходящих правил преобразования списков на входе. Поэтому, скажем, отложенное присваивание
:= это не присваивание в смысле языка программирования типа Си. А добавление в память еще одного правила преобразования. Для продвинутого пользователя неплохо бы знать, как математика обрабатывает команды (Main loop). Если знать такие вещи, синтаксис математики кажется вполне естественным. Но это мб приходит после некоторого времени работы.