Logo de pulpico

pulpico

Ô flots impétueux, menez moi ici.

La syntaxe de Scheme

Comme beaucoup de langage informatique, le code Scheme s'écrit et se lit linéairement de gauche à droite.

Cependant, contrairement à beaucoup de ces mêmes langages, Scheme utilise la notation préfixée dans laquelle l'opérateur est placé à gauche des opérandes.

<opérateur> <opérandes>

avec <opérandes> = <opérande-1> ... <opérande-n>.

Ce choix d'écriture permet d'avoir des expressions non ambigües puisque si l'on connait l'arité de l'opérateur (nombre d'opérandes de l'opérateur), on est capable de retrouver l'expression à partir de sa notation préfixée (lemme de Łukasiewicz).

De plus, chaque expression du langage est entourée de parenthèses (chaque parenthèse ouvrante doit être fermée). Cela peut paraître déroutant à un lecteur débutant du fait de leur nombre important dans certains programmes. Mais surtout, elles rendent la syntaxe de Scheme très régulière (chaque expression se forme sur le modèle suivant).

(<opérateur> <opérandes>)

avec <opérandes> = <opérande-1> ... <opérande-n> où n est l'arité de l'opérateur.

Enfin, Scheme n'a pour séparateur que les espaces et les retours à la ligne donc pas besoin de point virgule ou autre symbole particulier pour délimiter l'opérateur des opérandes ou les opérandes entre elles. La séparation des expressions est, quant à elle, déjà donnée par la présence des parenthèses.

Exemple de syntaxe

Maintenant que nous connaissons les règles de la syntaxe de Scheme, nous allons nous exercer à convertir des expressions utilisant la notation mathématique en leur équivalent Scheme.

5+35 + 3 s'écrit en Scheme :

(+ 5 3)

929 - 2 s'écrit en Scheme :

(- 9 2)

2×6+42 \times 6 + 4 s'écrit en Scheme

(+ (* 2 6) 4)

log(2)+1156!\frac{log(2) + 1}{15 - 6!} s'écrit en Scheme :

(/ (+ (log 2) 1) (- 15 (fact 6)))