next up previous
Up: No Title Previous: Preuves de programme

Annexe





Quelques fonctions prédéfinies

Fonctions manipulant les nombres

Les opérations arithmétiques usuelles sur les nombres : +, -, *, /

quotient : Entier, Entier $\rightarrow$ Entier, division entière
remainder : Entier, Entier $\rightarrow$ Entier, reste de la division entière
modulo : Entier, Entier $\rightarrow$ Entier

numerator : Rationnel $\rightarrow$ Entier, renvoie le numérateur d'un nombre rationnel
denominator : Rationnel $\rightarrow$ Entier, renvoie le dénominateur d'un nombre rationnel

abs : Réel $\rightarrow$ Réel, valeur absolue d'un nombre
round : Réel $\rightarrow$ Entier, arrondi à l'entier le plus proche
floor : Réel $\rightarrow$ Entier, renvoie l'entier inférieur le plus proche
ceiling : Réel $\rightarrow$ Entier, renvoie l'entier supérieur le plus proche
truncate : Réel $\rightarrow$ Entier, supprime la partie décimale
max : Réel, Réel, ... $\rightarrow$ Réel, arité variable, renvoie le maximum
min : Réel, Réel, ... $\rightarrow$ Réel, arité variable, renvoie le minimum

sqrt : Nombre $\rightarrow$ Nombre, renvoie la racine carrée
expt : Nombre, Nombre $\rightarrow$ Nombre, fonction puissance
log : Nombre $\rightarrow$ Nombre, fonction logarithme népérien
sin, cos, tan, acos, asin, atan : Nombre $\rightarrow$ Nombre, fonctions trigonométriques

Fonctions manipulant les chaînes de caractères

number$-\!\!>$string : Nombre $\rightarrow$ Chaine, convertit un nombre en une chaîne
string$-\!\!>$number : Chaine $\rightarrow$ Nombre, convertit une chaine en un nombre
string-length : Chaine $\rightarrow$ Entier, renvoie le nombre de caractères d'une chaîne
string-append :Chaine , Chaine $\rightarrow$ Chaine, concatène deux chaînes
substring : Chaine, Entier, Entier $\rightarrow$ Chaine, extraction d'une sous-chaîne

Fonctions manipulant les paires pointées et les listes

cons : Objet, Objet $\rightarrow$ Paire, renvoie la paire pointé formée des deux objets passés en argument
car : Paire $\rightarrow$ Objet, renvoie le premier élément d'une paire pointée
cdr : Paire $\rightarrow$ Objet, renvoie le deuxième élément d'une paire pointée

cons : Objet, Liste $\rightarrow$ Liste, ajoute un objet au début d'une liste
car :Liste* $\rightarrow$ Objet, renvoie le premier élément d'une liste non vide
cdr : Liste* $\rightarrow$ Liste, renvoie le reste d'une liste non vide

length : Liste $\rightarrow$ Entier, renvoie la longueur d'une liste
list : Objet, Objet, ... $\rightarrow$ Liste, construit une liste formée des arguments donnés en entrée
append : Liste, Liste, ... $\rightarrow$ Liste, renvoie la concaténation des listes données en entrée
reverse : Liste $\rightarrow$ Liste, renvoie une liste ``renversée''

Quelques prédicats prédéfinis

Opérateurs booléens

or : Booléen, Booléen, ... $\rightarrow$ Booléen, arité variable, ``ou'' logique, renvoie vrai si l'un des arguments a la valeur vrai, faux sinon
and : Booléen, Booléen, ... $\rightarrow$ Booléen, arité variable, ``et'' logique, renvoie vrai si tous les arguments ont la valeur vrai, faux sinon
not : Booléen $\rightarrow$ Booléen, ``non'' logique, renvoie vrai si son argument et faux, et vrai sinon

Prédicats concernant les nombres

integer? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est de type Entier
rational? :Objet $\rightarrow$ Booléen, renvoie vrai si son argument est de type Rationnel
real? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est de type Réel
number? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est de type Nombre

odd? : Nombre $\rightarrow$ Booléen, renvoie vrai si son argument est un entier impair
even? : Nombre $\rightarrow$ Booléen, renvoie vrai si son argument est un entier pair
zero? : Nombre $\rightarrow$ Booléen, renvoie vrai si son argument est égal à 0

Les opérateurs de comparaison =, <, >, <=, >= : Nombre, Nombre $\rightarrow$ Booléen

Prédicats concernant les chaînes de caractères

string? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est une chaîne
string=? : Chaine, Chaine $\rightarrow$ Booléen, teste l'égalité de deux chaînes
Prédicats concernant les paires pointées et les listes

pair? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est une paire pointée
list? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est une liste
null? : Objet $\rightarrow$ Booléen, renvoie vrai si son argument est la liste vide

Test d'égalité sur des objets quelconque

equal? : Objet, Objet $\rightarrow$ Booléen, renvoie vrai si ses deux arguments ont la même valeur


next up previous
Up: No Title Previous: Preuves de programme
Regis Girard
2000-02-23