Fonctions LISP usuelles prédéfinies

Terminologie

SUBR fonction prédéfinie évaluant tous ses arguments.
SUBR0 SUBR sans arguments
SUBR1 SUBR â un seul argument
SUBR2 ....... 2 arguments, etc ...
SUBRN ........nombre quelconque d'arguments.
FSUBR fonction prédéfinie n'évaluant pas systématiquement ses arguments.
FSUBR1 FSUBR â un argument
FSUBR2 ........ 2 arguments
FSUBRN etc ....

Les prédicats de base (retournent T pour vrai, NIL sinon)

ATOM SUBR1 teste si l'argument est un atome
CONSP SUBR1 teste si l'argument est une liste non vide
NULL SUBR1 teste si l'argument est la liste vide
LISTP SUBR1 teste si l'argument est une liste
NUMBERP SUBR1 teste si l'argument est un nombre
EQ SUBR2 teste si les 2 argq ont la même adresse physique
EQUAL SUBR2 teste si les 2 args ont la même structure

Prédicats logiques (attention évaluation en "court-circuit")

OR FSUBR retourne la première valeur différente de NIL, sinon NIL.
AND FSUBR retourne la dernière valeur ou NIL
NOT SUBR1 idem NULL

Les manipulations de listes

CAR SUBR1 renvoie la partie gauche d'un doublet
CDR SUBR1 ................. droite ............
C....R SUBR1 combinaison de CAR et CDR sur 4 niveaux
CONS SUBR2 construit un doublet (ou liste)
LIST SUBRN retourne la liste des valeurs des arguments

Les structures de contrôle (renvoient toujours la dernière évaluée)

COND FSUBRN (COND l1 l2 ...ln) avec li=(condi . corpsi) évalue le corps de la première li dont la condition est vérifiée sinon NIL
IF FSUBR (IF c e1 e2 ... en) évalue e1 si la condition c est vérifiée; évalue e2 ... en sinon e1
IFN FSUBR Le contraire de IF.
PROG FSUBR (PROG (v1 .. vk) e1 .. en): évalue le "bloc" e1..en avec les variables locales v1 .. vk mises a NIL.
LET FSUBR (LET ((v1 e1)...(vk ek) s1 ... sn) lie les valeur des ei aux variables locales vi et évalue s1 .. sn.
SELECTQ FSUBR (SELECTQ e e1 e2 .. ek) avec ei=(atome . corps) analogue au CASE Pascal.
WHILE FSUBR (WHILE cond e1 .. en) -> boucle tant que

Prédicats arithmétiques

Retournent le 1-er arg. si vrai, NIL sinon
<,>,=,<=,>=, <> SUBR2 comparaison de 2 valeurs numériques
ZEROP SUBR1 teste si l'argument est nul
PLUSP SUBR1 ................... est positif
MINUSP SUBR1 ................... est négatif

Fonctions arithmétiques

+ SUBRN somme des valeurs des arguments
* SUBRN produit .......................
- SUBRN valeur 1er argument moins la somme des autres
/ SUBRN ................. divisée par le produit ....
ABS SUBR1 valeur absolue
FIX SUBR1 partie entière

Arithmétique entière

idem ADD MUL SUB DIV REM (modulo)

Définition de fonctions

LAMBDA FSUBRN (LAMBDA (v1 .. vk) e1 .. en) définit une fonction anonyme.
DE FSUBRN (DE nom (v1 .. vk) e1 .. en) définit une fonction

Divers

QUOTE FSUBR1 renvoie son argument non évalué
SETQ FSUBRN (SETQ v1 e1 v2 e2 .... vn e2) affectation des valeurs des ei aux variables vi.
END SUBR0 retour â MS-DOS

Listes de propriétés

PUTPROP SUBR3 (PUTPROP symbole valeur indicateur) [rem]place la valeur placée sous l'indic. du symbole indiqué.
GETPROP SUBR2 (GETPROP symbole indicateur) renvoie la valeur placée sous l'indicateur, ou NIL si absente.
REMPROP SUBR2 (REMPROP symbole indicateur) supprime ...

Entrées-sorties

READ SUBR0 renvoie une valeur lue
PRINT SUBRN imprime les valeurs des args, et saute a la ligne
LOAD FSUBR1 charge le fichier indiqué

Mise au point des programmes

STEPEVAL SUBR1 évaluation pas-â-pas de l'expression indiquée
TRACE FSUBR (TRACE f1 f2 .. fn) met les fonctions en mode trace
UNTRACE FSUBR le contraire.
TRACEVAL SUBR1 évaluation d'une expression en mode trace