Elementy języka - patrykkurczyna/ClojureInterpreter GitHub Wiki
W języku występują następujące typy proste:
- Liczba całkowita
- Liczba zmiennoprzecinkowa
- Identyfikator (funkcji albo zmiennej)
- Lista zacytowana - np.
'(1 2 3)
Wyrażenia przyjmują następującą postać:
(nazwa_funkcji lista_argumentów)
nazwa_funkcji może być zadeklarowana poprzez użycie defun
, albo jako jedna z funkcji wbudowanych.
Wyrażenie przypisania:
(def nazwa_id wartosc)
wartosc może być wyrażeniem, zostanie wyewaluowane przed przypisaniem.
Funkcje definiujemy w sposób następujący:
(defun nazwa_funkcji (lista_argumentow) (expr_1) ... (expr_last) )
Funkcja zwróci wynik zwrócony przez expr_last.
Zdefiniowaną funkcję wywołujemy:
(nazwa_funkcji arg1 ... arg_last)
Postać jest następująca:
(if (cond_expr) (if_true_expr) (if_false_expr) )
Zwróci nam wynik wyrażenia if_false_expr, jeśli cond_expr zwróci "NIL", zwróci if_true_expr w przeciwnym wypadku.
W naszym języku pętla ma postać:
(loop (cond_expr) (expr1) (expr2) ... (exprlast) )
Gdzie:
- cond_expr - sprawdzane za każdym przejściem pętli (na początku). Jeśli zwróci wartość 'T', wyjdzie z pętli
- expr1..n - ciało pętli
- exprlast należy do ciała pętli, ten wynik zostanie zwrócony jako wynik pętli
- first - zwraca pierwszy element z listy
- last - zwraca listę bez pierwszego elementu
- substring - zwraca listę od i-tego elementu do j-tego.
- nth - zwraca i-ty element listy
- length - zwraca długość listy
- println - drukuje argument
- + - * / - operacje arytmetyczne
- = > < >= <= - operacje porównywania
- not and or - operacje logiczne
- arraymap -