A Mathematica programozási nyelv

Mintázatok

Minták

Mintázatok kezelésére és illesztésére több lehetőséget nyújt a Mathematica. _ karakter tetszőleges karaktert helyettesít. x_ egy olyan mintázat, amelyre x néven lehet hivatkozni (például függvények paramétere ilyen mintázat). Ha több mintára azonos névvel hivatkozunk egy kifejezésben, akkor minden előfordulásra ugyanannak az értéknek kell illeszkednie.

Két _ kifejezések sorozatát jelöli, tehát x__ mintára illeszkedik a, b, c (ezzel határozatlan számú paraméterrel definiálható alprogram). x__, y__, z__ mintára a, b, c, d, e többféleképpen is illeszthető, ezért erre az a megkötést tették, hogy x, y a lehető legrövidebb hosszúságú illeszkedést kapja. A példa esetén tehát x értéke a, y értéke b és z értéke c, d, e lesz.

_h egy olyan minta, amelynek a feje h, tehát ilyen mintára az a kifejezés illeszkedik, amelyik „típusa” h.

x_:v azt jelöli, hogy x alapértelmezett értéke v.

x_. azt jelöli, hogy x elhagyható, ekkor az a függvény ad alapértelmezett értéket, amelyet a Default függvénnyel adhatunk meg. Default[ f {, i {,n}} ]f függvény argumentumainak alapértelmezett értékét definiálja. Ha i meg van adva, akkor az i-edik paraméter alapértelmezett értékét adja, ha i mellett n is meg van adva, akkor az f n argumentumú változatára vonatkozik az alapértelmezés megadása. Egyes mintáknak beépített alapértelmezett értéke van, például x_^y_. mintára illeszkedik valamilyen hatvány alapban megadott kifejezés, ahol x érétke az alap, y értéke a kitevő lesz, azonban ha az aktuális paraméter nem hatvány alakú, y alapértelmezett értéke 1 lesz. Ugyanígy x_ + y_. esetén y alapértelmezett értéke 0, x_ y_. (szorzat) estén 1.

x.. azt jelöli, hogy x minta egyszer vagy többször ismétlődik, x... pedig azt, hogy nullaszor vagy többször. | segítségével több minta megadható, balról jobbra az első illeszkedő lesz kiválasztva, x/;feltétel pedig feltételes minta, akkor illeszkedik, ha x illeszkedik és feltétel igaz.

Helyettesítés

Két alapvető helyettesítési utasítás van, -> és :>. Az első azonnali helyettesítést végez, a másodikat csak akkor értékeli ki a program, amikor a baloldali kifejezésre hivatkozunk (késleltetett helyettesítés).