Peatükk 2. Süntaks

KAlgebra kasutab kasutaja funktsioonide sisestamiseks intuitiivset algebralist süntaksi, mis sarnaneb enamikus tänapäeva graafikalkulaatorites kasutusel oleva süntaksiga. Allpool loetletakse tähtsaimad KAlgebras saadaolevad operandid. KAlgebra autor võttis süntaksi loomisel eeskuju programmidest Maxima ja maple, pidades silmas kasutajaid, kes võivad olla nendega juba tuttavad.

Kui kedagi peaks huvitama KAlgebra siseelu, siis kasutaja sisestatud avaldised teisendab taustaprogramm MathML-i. See tähendab, et KAlgebra sisemiste omaduste korralikuks mõistmiseks on vajalik vähemalt pinnapealnegi arusaam MathML-o toetatud võimalustest.

Nimekiri praegu kasutada olevatest tehetest:

  • + - * / : liitmine, lahutamine, korrutamine ja jagamine.

  • ^, **: astendamine, kasutada võib mõlemat viisi. Samuti võib kasutada Unicode ² märki. Astmemärkide abil saab ka juurida, näiteks nii: a**(1/b)a

  • -> : lambda. Sellega saab määrata ühe või rohkem vabu muutujaid, mis on funktsioonis piiratud. Näiteks avaldises length:=(x,y)->(x*x+y*y)^0.5 kasutatakse lambdaoperandi märkimaks, et x ja y on piiratud, kui kasutatakse funktsioon length.

  • x=a..b : seda saab kasutada vajaduse korral määrata kindlaks vahemik (piiratud muutuja+ülemraja+alamraja). See tähendab, et x on vahemikud a kuni b.

  • () : sellega saab määrata kõrgema prioriteedi.

  • abc(parameetrid) : funktsioonid. Kui parser leiab funktsiooni, kontrollib ta, kas abc on operaator. Kui jah, siis nii seda käsitletaksegi, kui ei, siis võetakse seda kui kasutaja funktsiooni.

  • := : definitsioon. Nii saab defineerida muutuja väärtuse. Saab teha selliseid asju nagu x:=3, x:=y, kus y on defineeritud või defineerimata, või ümbermõõt:=r->2*pi*r.

  • ? : tükiti (piecewise) tingimuse definitsioon. Sel moel saab KAlgebras defineerida tingimuslikke tehteid. Või kui teisiti öelda, siis saab nii määrata if, elseif ja else tingimust. Kui lisame tingimuse '?' ette, kasutatakse seda tingimust ainult siis, kui see on tõene, kui leitakse '?' ilma tingimuseta, lisatakse see viimasena. Näide: kui on tõene kui a iga asukohas Näide: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }

  • { } : MathML konteiner. Nii saab defineerida konteineri. Peamiselt on sellest kasu tükiti tehete puhul.

  • = > >= < <= : väärtuste võrdlejad vastavalt võrdse, suurema, suurema või võrdse, väiksema ning väiksema või võrdse jaoks

Võib tekkida küsimus, milleks peaks üldse MathML-i peale mõtlema? Vastus on lihtne: nii saab kasutada selliseid fuktsioone nagu cos(), sin() või muid trigonomeetrilisi funktsioone, sum() or product(). Pole vahet, mis tüüpi see on. Kasutada saab plus(), times() ja kõike muud, millel on oma operaator. Võimalikud on ka tõeväärtustega funktsioonid, nii et kasutada saab ka sellist asja nagu or(1,0,0,0,0).