Procedury i moduły

Procedura

Clear[A,i,j]

Procedurę można zdefiniować jako ciąg rozdzielonych średnikami poleceń objętych nawiasem okrągłym. 
Nazwą procedury jest nazwa zmiennej, której nadano taką wartość, np

xx:=(Do[A[i,j]=(i^2)+(j^2),{i,4},{j,4}];Table[A[i,j],{i,4},{j,4}]//TableForm);

Należy pamiętać o znaku SetDelayed ( := )   
Dwukropek jest nizbędny.

Wywołanie procedury

xx

Procedura z parametrem

Clear[x,k]

Można zdefinować procedurę z parametrem k  jako funkcję f[k]:

F[k_]:=(f[x_]=((Sin[x])^k);g[x_]=((Sin[x])^(k+5));Plot[{f[x],g[x]},{x,-2,2}])

F[2]

Module

Module umożliwia wprowadzenie zmiennych, których zasięg jest ograniczony.

Clear[x]

Definiuję f[x]

f[x_]=Sin[x];

Definiuję moduł, który używa f jako zmiennej wewnętrznej (przykład z podręcznika)

fib[n_]:=Module[{f},f[1]=f[2]=1;f[i_]:=f[i-1]+f[i-2];f[n]]

Wywołuję procedurę fib[n]

Table[fib[n],{n,20}]

Wylicza ona liczby Fibonacciego

Table[fib[n],{n,20}]==Table[Fibonacci[n],{n,20}]

Sprawdzam, że zdefiniowana wewnątrz modułu f[i] nie narusza wcześniejszej definicji f[x]

f[3]