http://bacon.umcs.lublin.pl/~pgiza/dyd/lispouczek/lk.php-nr=7.htm
Setq – przechowywanie zwykłych zmiennych
Setf – przechowywanie zwykłych zmiennych i uogólnionych
(Defun nazwa (parametry)) – tworzy funkcję
Cons – dodaje element do listy
Car – głowa
Cdr – ogon
List – tworzy liste
First, secondo, third, (lista) – zwracają pierwszy, drugi, trzeci element listy
Rest – zwraca listę zawierającą wszystko oprócz pierwszego elementu
Reverse – zwraca odwróconą listę
Last – zwraca ostatnią komórkę listy
Remove – usuwa rzecz z listy
Appena – łączy dwie listy
Member – sprawdza czy cos jest na liscie
Find – wypisuje liste na której są podane elementy
Subsetp – sprawdza czy lista zawiera elementy odp to nill lub T
Intersection – część wspólna dwóch zbiorów
Union – suma zbiorów
Set-difference – różnica zbiorów
Print – drukowanie
Numberp – sprawdza czy argument jest typu liczbowego T/NILL
Equal – sprawdza czy dwa argumenty są równe T/NILL
Listp – sprawdza czy wejście jest listą T/Nill
(If warunek prawda fałsz) – instrukcja warunkowa
(if (symbolp ’slowo) (* 3 4) (+ 3 4)) => 12
When , Unless – instrukcje warunkowe z dowolną liczbą instrukcji
Case – wiele odpowiedzi
(case x
(a 5)
((d e) 7)
((b f) 3)
(otherwise 9)
) => 3
Cond – pierwszy element to warunek i cond szuka pierwszej klauzuli która spelnia ten warunek
(cond
((evenp a) a) ;jeśli a jest parzyste, zwroć a
((> a 7) (/ a 2)) ;inaczej, jeśli a jest > niŜ 7, zwroć a/2
((< a 5) (- a 1)) ;inaczej, jeśli a jest < niŜ 5, zwroć a-1
(t 17) ;inaczej zwroć 17
)
(cond ((+ 3 4))) => 7
: - poczatek slowa kluczowego
Oddp – przyjmuje dokładnie jedno wejście
Posnump – zwraca T jeżeli wejście jest liczbą i jest pozytywną
Plusp – sprawdza czy liczba jest dodatnia
Compare – porownuje dwie liczby mowi która mniejsza a która wieksza
(defun compare (x y)
(cond ((equal x y) ’liczby-sa-rowne)
((< x y) ’pierwsza-liczba-jest-mniejsza)
((> x y) ’pierwsza-liczba-jest-wieksza)
)
)
Eq – porownuje symbole i obiekty poprzez adres
Eql – sprawdza czy liczby/znaki są jednego typu
Equalp –porownuje lancuchy – mogą mieć rozna wielkość liter
= - porownuje liczby rocznego typu np. =1 1.0 T
Let – zmienne lokalne
Defconstant – stałe
Defparametr – zmienne globalne
dotimes. - petla
(dotimes (zmienna_n opcjonalna-zwracana-wartość)
wyrażenie
...)
Dolist - petla
(dolist (e '(1 2 3 4 5 6) opcjonalna-zwracana-wartość)
wyrażenie
...)
Pętla do.
(do ((zmienna1 wartość-początkowa step)
...
(zmienna2 wartość-początkowa step))
(warunek-zakończenia wartość-zwracana)
wyrażenia
...)
Pętla loop w prostej postaci:
(loop
wyrażenie
...)
Funkcja listp zwraca prawdę jeśli argument jest listą.
Funkcja endp zwraca wartość prawdy jeśli jest to koniec listy.
(defstruct struct p1 p2 p3) – tworzy structure
(defclass klasa () – tworzenie klas
(a b c))
(setq obj (make-instance 'klasa)) – nowy obiekt w klasie
(setf (slot-value obj 'a) "Lorem") – odwołanie sie do obiektu w klasie
(print (slot-value obj 'a))
=> "Lorem"
(defun factorial (n)
(if (zerop n) 1
(* n (factorial (- n 1))))) silnia rekurencyjna
(defun szescian (x)
(*(* x x) x))
SZESCIAN
CL-USER> (mapcar #'szescian '(1 2 3))
(1 8 27)
(defun jaka (x)
(if (oddp x) 1 0)) – jaka zwzraca 0 gdy liczba jest parzysta i 1 gdy nieparzysta
(maplist (lambda (x) (list 'start x 'end)) '(1 2 3 4)) lista list ważne !!