Forum Forum 1 Grupy Ćwiczeniowej Strona Główna

Forum 1 Grupy Ćwiczeniowej
Forum studentów informatyki Politechniki Białostockiej
 

Lisp

 
Napisz nowy temat   Odpowiedz do tematu    Forum Forum 1 Grupy Ćwiczeniowej Strona Główna -> 4 semestr / Systemy ekspertowe
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

PostWysł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
Zobacz profil autora
boro



Dołączył: 27 Lut 2007
Posty: 286
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysł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
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Forum 1 Grupy Ćwiczeniowej Strona Główna -> 4 semestr / Systemy ekspertowe Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
deoxBlue v1.0 // Theme created by Sopel stylerbb.net & programosy.pl

Regulamin