Résumé du chapitre 16

Les entrées-sorties


La séquence

Il est parfois nécessaire d'effectuer des actions les unes après les autres dans un ordre imposé. On dit que ces actions sont effectuées en séquence.

Une séquence se réalise en SCHEME à l'aide de la fonction begin qui prend en argument des expressions qui seront évaluées les unes après les autres, de la première à la dernière. C'est le résultat de l'évaluation de la dernière expression qui est retourné.

La syntaxe d'une séquence est donc :

(begin expression_1tex2html_wrap_inline942 expression_n)

Effet de bord : les procédures

Pour certaines expressions, l'important n'est pas le résultat retourné, mais l'action effectuée. Cette action influence généralement le ``monde'' dans lequel se déroule l'évaluation : modification de l'environnement, affichage à l'écran, etc.

De telles expressions sont dites à effet de bord. On appellera procédure, une fonction à effet de bord. En effet, dans ce cas, le terme de fonction n'est pas adapté puisque la valeur retournée importe peu.

define est une procédure à effet de bord qui modifie l'environnement.

Entrées-sorties

On appelle entrées/sorties les effets de bord permettant une interaction entre le programme et le monde qui l'entoure. Les éléments avec lesquels le programme peut ainsi ``communiquer'' sont le clavier, l'écran, une imprimante, un fichier, etc. Bref, tous les périphériques d'entrées-sorties...

Nous n'avons considéré ici que deux cas :

Sortie

Les procédures de sortie de base en SCHEME sont les suivantes : write et display. 


Il n'y a qu'une très légère différence de comportement entre display et write, celle-ci se situe au niveau de l'affichage des chaînes de caractères.

Très important : Il ne faut en aucun cas confondre une valeur retournée par une évaluation et une valeur affichée par une procédure à effet de bord de sortie. La valeur retournée par une expression qui apparaît à l'écran est celle de la dernière évaluation effectuée lors de l'évaluation de cette expression. Les valeurs affichées le sont à chaque évaluation d'un appel à display ou write et ne peuvent être utilisées dans un calcul. Ces fonctions ne sont pas composables ! La valeur retournée par ces procédures est non spécifiée.

Notons également la procédure de sortie suivante : newline

Entrée

La procédure d'entrée de base est : read

Effet de bord : attend (indéfiniment) que l'utilisateur saisisse une valeur au clavier (la saisie se termine par la frappe de la touche ENTREE), cette valeur est retournée par le read.

Une valeur lue servant généralement à faire des calculs sur cette valeur, il est généralement nécessaire de la mémoriser dans une variable locale. On utilise donc généralement le schéma suivant :

(let ((variable (begin (display message)
(read))))
expression)

expression est l'expression composant le corps du let et utilisant a priori l'identificateur variable.


next up previous
Next: Résumé du chapitre 17 Up: No Title Previous: Résumé du chapitre 15

Eric.Wegrzynowski
Thu Mar 20 13:58:10 MET 1997