1. Tworzenie struktury: >(list 1 2 3 4)
2. Dodawanie elementu do listy: >(setq lista '(1 2 3 4))
>(push 5 lista)
3. Usuwanie elementu z listy: >(pop lista)
4. Porównywanie(długości): >(load "d:\\list.lisp")
>(setq lista1 '(1 2 3 4))
>(setq lista2 '(5 6 7 8 3 5))
>(dlugosc lista1)
4
>(dlugosc lista2)
6
>(> (dlugosc lista1) (dlugosc lista2))
NIL (- czyli, to nie prawda,ze lista1 jest dluzsza)
>(< (dlugosc lista1) (dlugosc lista2))
T (- czyli, lista 2 jest dluzsza od listy1)
5. Sortowanie* - dodatkowe, nie mamy
6. Wyszukiwanie elementu: >(setq lista '(1 2 3 4 5 6 7))
>(nth 3 lista)
5 (- bo glowy nie bierze pod uwage,bo glowa to 0)
7. ONP: (DEFUN onp (A)
(if (= (LENGTH A) 1) (print A)
(if (numberp (car A))
(if (eq (L1) nil) ((setq L1 (car A)) (setq A (cdr A)) (onp A)) ((setq L2 (car A)) (setq A (cdr A)) (onp A)) ) ;jeśli jest liczbą, to wpisujemy do pierwszej zmiennej, chyba, że zajęta, to do drugiej
( (setq ZNAK (car A)) (setq A (cdr A)) (setq A (push (ZNAK L1 L2) A)) (setq L1 nil) (setq L2 nil) (onp A)) ;jeśli nie jest liczbą, to pobieramy kolejny znak, za jego pomocą dokonujemy obliczeń i wynik umieszczamy
)
)
)
8. N-ty wyraz listy: w załączniku w notatniku pod nazwą "nty"
>(load "d:\\nty.lisp")
>(wezNty '(1 2 3 4) 2)
3 (-bo glowa to 0)
9. Notacja Polska: (DEFUN np (A)
(if (equal (cdr A) nil) "koniec"
(
(setq ZNAK (car A))
(setq A (cdr A))
(setq L1 (car A))
(setq A (cdr A))
(setq L2 (car A))
(setq A (cdr A))
(setq WYNIK (+ (ZNAK L2 L1) WYNIK))
(print WYNIK)
(np (A))
)
)
)