
KAlgebra usa una sintaxis algebraica intuitiva para introducir las funciones del usuario de forma similar a la que usan la mayor parte de las calculadoras gráficas modernas. Esta sección lista las operaciones fundamentales que proporciona KAlgebra. El autor de KAlgebra ha modelado la sintaxis según Maxima y Maple para los usuarios que estén familiarizados con estos programas.
Para los usuarios interesados en el funcionamiento interno de KAlgebra, las funciones introducidas por el usuario se convierten a MathML en el motor. Un conocimiento rudimentario de las posibilidades proporcionadas por MathML le servirá de ayuda para revelar las funcionalidades internas de KAlgebra.
Aquí tiene una lista de los operadores disponibles hasta el momento:
+ - * /
: suma, resta, multiplicación y división.^, **
: potencia, puede usar cualquiera de las dos formas. Asimismo, puede usar los caracteres unicode²
. Las potencias son también una forma de expresar raíces, lo que puede hacer de la siguiente forma:a**(1/b)
->
: lambda. Es el modo de especificar una o más variables libres que estarán ligadas a una función. Por ejemplo, en la expresiónlength:=(x,y)->(x*x+y*y)^0.5
, el operador lambda se usa para indicar quex
ey
estarán ligadas cuando se usa la función «length».x=a..b
: se usa cuando necesitamos delimitar un intervalo (variable limitada + límite superior + límite inferior). Esto significa quex
va dea
ab
.()
: se usa para especificar una prioridad mayor.abc(parámetros)
: funciones. Cuando el analizador sintáctico encuentra una función, comprueba siabc
es un operador. Si lo es, lo trata como un operador; si no lo es, lo trata como una función de usuario.:=
: definición. Se usa para definir el valor de una variable. Puede escribir cosas comox:=3
,x:=y
, dondey
puede estar definido o no, o comoperímetro:=r->2*pi*r
.?
: definición de condiciones en funciones definidas a trozos («piecewise»). Permite definir operaciones condicionales en KAlgebra. Dicho de otro modo, es otra forma de especificar una condición «if, elseif, else». Cuando introducimos la condición antes del símbolo?
, se utilizará dicha condición solo si es verdadera; en cambio, si encuentra un símbolo?
sin ninguna condición, se tendrá en cuenta el último caso. Por ejemplo:piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }
{ }
: contenedor MathML. Puede usarse para definir un contenedor. Es muy útil a la hora de trabajar con funciones definidas a trozos.= > >= < <=
: operadores relacionales que indican «igual», «mayor», «mayor o igual», «menor» o «menor o igual», respectivamente.
Ahora puede preguntarme por qué debería el usuario preocuparse por MathML. La respuesta es fácil. Con esto podremos realizar operaciones con funciones como cos()
, sin()
(o cualquier otra función trigonométrica), sum()
o product()
. No importa el tipo de función que sea. Podremos usar plus()
, times()
y cualquier cosa a la que le corresponda un operador. También se han implementado funciones lógicas, por lo que podremos hacer cosas como or(1,0,0,0,0)
.