Lisp Flashcards
(38 cards)
(cons x y)
Ajoute x dans la liste y (non destructif)
> (cons ‘a ‘(b c))
> (a b c)
(push x y)
Ajoute x dans la liste y (destructif)
> (push ‘a ‘(b c))
> (a b c)
(pushnew x y)
Ajoute x dans la liste y s’il n’y est pas déjà (destructif)
> (pushnew ‘a ‘(b c))
> (a b c)
(symbol-value x)
valeur d’un symbol (pas nombre)
(last x)
Retourne une liste contenant le dernier élément de x
(append x y)
concatène deux listes (non destructif)
(member x y)
Vérifie si un élément fait partie d’une liste, si oui liste à partir de la première occurrence, nil sinon
/!\ Ajouter :test ‘equal si l’élément recherché n’est pas un atome !
(length x)
Retourne le nombre d’éléments de la liste
(nconc x y)
concatène deux listes (destructif, x modifiée)
(eq x y)
Egalité des pointeurs
(equal x y)
Egalité aux feuilles de l’objet référencé
(= x y)
Egalité des nombres
Prédicats
NUMBERP LISTP FLOATP INTEGERP NULL SYMBOLP STRINGP ATOM
fonction anonyme
((lambda (xx) (list xx xx)) ‘a)
fonction apply
(apply ff 2 3 ())
fonction puis arguments, dernier = liste dont chaque element est un argument
fonction funcall
(funcall ff 2 3)
fonction puis arguments
variable étendue aux sous fonctions
(declare (special x))
variable locale
(let(*) ((var val) (var val))
<code>
)</code>
variable globale
(defvar var init)
defparameter var new
bloc
(progn <code> )</code>
(prog1 <code> ) retourne la valeur de la première expression évaluée</code></code>
switch
(cond
( )
( )
)
when
(when p a) = (unless (not p) a)
loop
(loop for x in list do )
(loop for x from 1 to 100 [until ] do )
collect/count/sum… sans parenthèses !
ex : (loop for x in liste sum x)
dolist
(dolist (var list [result])
)