Napiszmy funkcję, która pozwoli nam obliczyć n-tą potęgęliczby 2 i od razu ją wywołajmy:
| (%i2) | npotega2(n):=2^n; | |
| npotega2(10); | ||
| (%o1) | npotega2(n):=2^n; | |
| (%o2) | 1024 | 
oraz przyjrzyjmy się funkcji, która pozwoli obliczyć b-tą potęgędowolnej liczby x i też od razu ją wywołamy:
| (%i4) | npotegax(x,n):=x^n; | |
| npotegax(3,3); | ||
| (%o3) | npotegax(n):=x^n; | |
| (%o4) | 27 | 
Jest to przykład najprostszej funkcji możliwej do napisania. Definiowanie takiej funkcji składa się z podania nazwy funkcji, określenia w nawiasach okrągłych jakie argumenty przyjmuje, zastosowania symbolu przypisania Z:= oraz wyrażenia do obliczenia.
Załóżmy teraz, że interesuje nas, która liczba jest większa. Chcąc otrzymać wynik potrzebujemy instrukcji warunkowej, która nam sprawdzi i zwróci odpowiednią wartość.
| (%i6) | zwrocWieksza(a,b):=block(if(a>b) then return(a), return(b)); | |
| zwrocWieksza(4,5); | ||
| (%o5) | zwrocWieksza(a,b):=block(if(a>b) then return(a), return(b)); | |
| (%o6) | 5 | 
Po raz pierwszy stosujemy tutaj funkcję block, która określa, że wprowadzamy ciąg instrukcji. block() w nawiasach okrągłych przyjmuje instrukcje oddzielone przecinkiem. Podany przykład wprowadza instrukcję if([...])then [...], która jest instrukcją warunkową. W nawiasy okrągłe wpisujemy warunek, tutaj a > b. Po then możemy wykonać dowolną instrukcję lub wstawić kolejny block. W naszym przypadku używamy return([...]), aby zwrócić wartość podaną w nawiasach okrągłych. Warto nadmienić, że return przerywa wykonywanie bloku, dlatego jeśli a jest większe od b to zwracamy a i kończymy block. Jeśli a jest nie większe niż b to wykonujemy block dalej czyli zwrócimy b.
Maxima to program matematyczny, ale potrafi też wypisywać na ekran teksty. Przypuśćmy, że chcemy wiedzieć czy liczba jest dodatnia:
| (%i7) | czyDodatnia(a):=block(if(a>0) then return("TAK"), return("NIE")); | |
| czyDodatnia(5); | ||
| (%o7) | czyDodatnia(a):=block(if(a>0) then return("TAK"), return("NIE")); | |
| (%o8) | TAK | 
W tym przykładzie ponownie posłużyłem się funkcją block i if. Jednak w tym przypadku return nie zwraca liczby, a wartość tekstową, która musi być opatrzona w cudzysłowy "".
Przy definiowaniu funkcji wolno nam użyć funkcji if instrukcja po instrukcji. W ten sposób możemy zadeklarować funkcję signum.
| (%i10) | sgn(a):=block(if(a>0) then return(1), if(a=0)then return(0), return(-1)); | |
| sgn(4); | ||
| (%o9) | sgn(a):=block(if(a>0) then return(1), if(a=0)then return(0), return(-1)); | |
| (%o10) | 1 | 
Instrukcja if pozwala używać symboli operacji logicznych takich jak: spójnik i and, spójnik lub or, albo negacje not. W ten sposób możemy sprawdzić czy któraś z podanych liczb jest większa od 0 używając zaledwie dwóch instrukcji.
| (%i11) | czyJakasDodatnia(a,b):=block(if(a>0 or b >0) then return("TAK"), return("NIE")); | |
| czyJakasDodatnia(-4,5); | ||
| (%o11) | czyJakasDodatnia(a,b):=block(if(a>0 or b >0) then return("TAK"), return("NIE")); | |
| (%o12) | TAK | 
Napisz poniższe funkcje i przetestuj: