Elementy języka - patrykkurczyna/ClojureInterpreter GitHub Wiki

Atomy

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

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.

Przypisanie

Wyrażenie przypisania:

(def nazwa_id wartosc)

wartosc może być wyrażeniem, zostanie wyewaluowane przed przypisaniem.

Funkcje

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)

Wyrażenia warunkowe

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.

Pętle

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

Funkcje wbudowane

  • 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 -
⚠️ **GitHub.com Fallback** ⚠️