Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
vbazyl
Dołączył: 06 Mar 2007
Posty: 94
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Podlasie
|
Wysłany: Wto 18:45, 03 Cze 2008 Temat postu: Lisp |
|
|
Na prośbę notatki z zajęć:
(DEFUN nazwa_funkcji (parametry) (polecenia))
(DEFUN pole_kwadratu (bok) (* bok bok))
(second '(milk bread coffe))
(cons 'sugar '(bread milk coffe))
(list 1 2 3 '(a b))
1. funkcja zwracająca ostatni element listy
2. funkcja wstawiającą element na koniec listy (parametry -element i lista)
3. funkcja usuwa ostatni element listy
4. funkcja zamieniająca ostatni element listy na wyrażenie (parametry - wyrażenie i lista)
Kod: | 1. (defun ostatni (list) (first (reverse list)))
2. (defun wstaw (a list) (reverse (cons a (reverse list))))
3. defun usun (list) (reverse (append (rest (reverse list)))))
4. (defun zamien (a list) (reverse (cons a (append (rest (reverse list))))))
|
Predykaty:
(atom '(a b c))
(consp 'u) ->nil
(consp '(a b)) ->t
(consp nil) ->nil
(listp nil) ->t
(listp '(a b c)) ->t
(listp 12) ->nil
(equal '(a b) '(a b)) ->t
(endp lista) ->sprawdza czy pusta
(end nil) ->t
(endp '(a b)) -> nil
(endp 12) ->error
(zerop liczba) ->sprawdza czy liczba jest zerem
(zerop nil) -> error
(member wyrazenie lista)
(member 'a '(a b c))
|
|
Powrót do góry |
|
 |
|
 |
boro
Dołączył: 27 Lut 2007
Posty: 286
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Śro 21:49, 04 Cze 2008 Temat postu: |
|
|
Dzieki uprzejmości Rafała, któremu chciało się cokolwiek pisać na zajęciach:
Kod: | (defun dl (n)
(if (NULL n)
0
(+
(if (listp (car n))
(dl (car n))
1
)
(dl (cdr n))
)
)
)
;ilosc liczb na liscie rekurencyjnie tylko po cdr
(defun dlnum (n)
(if (NULL n)
0
(+
(if (numberp (car n)) 1 0)
(dlnum (cdr n))
)
)
)
;ilosc liczb na liscie rekurencyjnie po cdr i car
(defun dlnum2 (n)
(if (NULL n)
0
(+
(if (numberp (car n))
1
(if (listp (car n))
(dlnum2 (car n))
0
)
)
(dlnum2 (cdr n))
)
)
)
;suma liczb na liscie rekurencyjnie po cdr i car
(defun dlnum3 (n)
(if (NULL n)
0
(+
(if (numberp (car n))
(car n )
(if (listp (car n))
(dlnum3 (car n))
0
)
)
(dlnum3 (cdr n))
)
)
) |
Ostatnio zmieniony przez boro dnia Śro 21:50, 04 Cze 2008, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
 |
|