В KAlgebra для ввода пользовательских функций используется интуитивно понятный алгебраический синтаксис, похожий на тот, который применяется в большинстве современных графических калькуляторов. В этом разделе перечислены основные встроенные операции, доступные в KAlgebra. Автор KAlgebra взял за основу синтаксис программ Maxima и Maple, что упростит работу знакомым с ними пользователям.
Внутренняя служба преобразует введённые пользователем выражения в формат MathML — пользователи, которые обладают начальными знаниями о поддерживаемых MathML возможностях, при желании смогут разобраться во внутреннем устройстве KAlgebra.
Вот список доступных в этой версии операций:
+ - * /: Сложение, вычитание, умножение и деление.^, **: Возведение в степень. Возможно использовать символы Unicode —²и так далее. Операция взятия корня обратна операции возведения в степень:a**(1/b)->: лямбда. Способ указать одну или несколько свободных переменных, которые будут связаны в функции. Например, в выраженииlength:=(x,y)->(x*x+y*y)^0.5лямбда-оператор позволяет обозначить, что переменныеxиyбудут связаны при использовании функции length.x=a..b: Эта конструкция используется, если нужно задать диапазон значений переменной (связанная переменная + ограничение снизу + ограничение сверху). Это означает, чтоxизменяется в интервале отaдоb.(): Скобки используются для явного задания приоритета вычислений.abc(параметры): Функции. В ролиabcможет быть згнак оператора или имя функции.:=: Определение. Задаёт значение переменной. Допустимы выражения наподобиеx:=3,x:=y(даже еслиyне определена),perimeter:=r->2*pi*r.?: Условный оператор для задания кусочно-заданных функций в KAlgebra. Другими словами, это способ указания условия «if», «elseif», «else». Если указать условие перед знаком «?», то следующее за ним значение будет использовано только в том случае, если условие выполняется, а если перед «?» не будет условия, будет использовано предыдущее условие. Пример:piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }{ }: Блок MathML. Позволяет указывать произвольный код на MathML внутри. Полезно для работы с кусочно-заданными функциями.= > >= < <=: Операции сравнения «равно», «больше», «больше или равно», «меньше», «меньше или равно».
Зачем вообще использовать блок MathML? Ответ прост. С его помощью возможно выполнять операции наподобие cos(), sin() и любые тригонометрические функции, sum() и product(). Характер самой функции не важен. Возможно использовать plus() (сложение), times() (умножение) и любые другие функции, которым соответствует определённый оператор. Также реализованы булевские функции, что позволяет выполнять операции наподобие or(1,0,0,0,0).