Zmienne globalne są sposobem nadawania nazw rzadko lub wcale nie zmieniającym się stanom abstrakcyjnych obiektów wyrażających różne wartości na przestrzeni czasu (funkcje, elementy konfiguracji, stałe wartości).

Dzięki konstrukcji def można stworzyć globalne powiązania symboli z wartościami za pośrednictwem obiektów typu Var. (def wynik (+ 2 (* 4 5)))

Definicja funkcji Funkcja obliczająca silnie (nazwy zmiennych tj. symboli, tak jak w innych dialektach języka lisp mogą się składać z dowolnych znaków). (defn ! [x] (if (= x 0) 1 (* x (! (- x 1)))))

Funkcje anonimowe Funkcja anonimowa czy funkcja bez nazwy, można przekazać całe poniższe wyrażenie jako argument do innej funkcji (taka funkcja będzie więc funkcją wyższego rzędu). (fn [x] (* 2 (/ 3 4)))

Funkcje wyższego rzędu Czyli funkcje które przyjmują inne funkcje jako argumenty lub zwracają funkcje. (defn f [x] (* 2 (/ 3 4))) (map f '(3 4 5 6 7 8)) Lub to samo używając funkcji anonimowej: (map (fn [x] (* 2 (/ 3 4))) '(3 4 5 6 7 8)) Funkcja zwracająca anonimową funkcję (defn f [x] (fn [] x)) Powyższa funkcja zwraca funkcję anonimową, która z kolei zwraca zmienną przekazaną jako argument do tej pierwszej funkcji, jest to tzw.