A map(u->simplify(u, %), %%) -ban a % az elõzõ eredményre utal a %%-pedig az azt megelõzõ számítási eredményre, itt most nem tudjuk mi volt az , de nem is lényeges. A map utasítás az elsõ paraméterében megadott mûveletet végzi el a második paraméterében megadott adattípus összes elemén. Ez utóbbi pl. ha egy lista típus, akkor annak minden elemén elvégzi a megadott mûveletet, vagy ha ez egy összeg, akkor annak egyes tagjain sorban.
pl.
map(sin,[a,b,c]);
[sin(a), sin(b), sin(c)]
A mûvelet megadható operátoros alakban is azaz pl. u - > simplify(u,par2). Itt az u csak egy segédváltozó, gyakorlatilag tetszõleges más szimbólum is szerepelhetne. A map parancs majd az u-helyére behelyettesíti a második paraméterében szereplõ adattípus elemeit sorra és elvégzi rajtuk a megadott mûveletet.
map(u->u^2,[a,b,c]);
[a^2, b^2, c^2]
map(u->u^2,a+b);# összeg tagjait emeli négyzetre
a^2+b^2
Az operátoros alakban szabadabban meg lehet adni a mûveletet, azaz pl. több paramétere is lehet a függvénynek.
Itt a simplify-parancsot alkalmazza a map. Amire érdemes felfigyelni, hogy a két példád közül az egyikben a simplify parancs két paraméteres változata szerepel azaz simplify(par1, par2) formában, a második példában pedig egy paraméteres alakja simplify(valami)
Ez a fõ különbség. A map(simplify, valami) megadásban egy paraméteres simplify használható. Az operátoros formában meg lehet adni több paramaéteres függvényt is. pl.
map(t->f(t,d,e),[a,b,c]);
[f(a, d, e), f(b, d, e), f(c, d, e)]
Érdemes még megjegyezni, hogy lenne más lehetõség is (bár nem minden esetben) az operátoros forma elkerülésére több paraméteres függvény használata esetén, mert a map parancsnak is létezik más megadási formája is: azaz map(függvény, adat, par3,par4...) Itt a függvény 3. 4 stb. paraméterei szerepelhetnek a par3, par4 helyén. Lásd az alábbi példákat:
map(t->f(t,d,e),[a,b,c]);# több paraméteres függvény f operátoros formában
[f(a, d, e), f(b, d, e), f(c, d, e)]
map(f, [a,b,c],d,e);# map másféle megadási módja: több paraméteres f függvény nem operátoros formában
[f(a, d, e), f(b, d, e), f(c, d, e)]
Példa több paraméteres simplify parancsra, mappel:
map(u->simplify(u,symbolic),[sqrt(x^2),sqrt((x-1)^2)]);# operátoros formában