« Programmation Scheme/Notions élémentaires » : différence entre les versions

Contenu supprimé Contenu ajouté
Cynddl (discussion | contributions)
La mise en page reste à revoir ...
wikification
Ligne 1 :
{{Chapitre
| titre = Notions élémentaires
| idfaculté = informatique
| leçon = [[../]]
| numero = 1
| précédent = [[../|sommaire]]
Ligne 29 ⟶ 27 :
L'un des intérêt de Scheme est d'être "dynamiquement typé", c'est-à-dire que l'interpréteur n'exigera pas que l'on fournisse le type de chaque information (contrairement à Java par exemple), mais il le "déduira" lui-même au moment de l'exécution selon les opérations effectuées.
 
{{Exemple de définition :
| titre = Exemple de définition
| contenu =
<source lang="haskell">(define n1) ; n va prendre la valeur 1.</source>
<source lang="haskell">
 
<source lang="haskell">(define n1) ; n va prendre la valeur 1.</source>
</source>
}}
 
== Notation élémentaire ==
Ligne 38 ⟶ 39 :
Tout d'abord le " ; ", il permet d'insérer les commentaires dans un programme : toute la ligne sur la droite ne sera pas considérée par le compilateur, mais il en faut un à chaque ligne.
 
<source lang="haskell">
(...) ;Un commentaire sur une ligne
(...) ;Un autre
(...) ;sur trois
(...) ;lignes.
</source>
 
Scheme utilise la notation préfixée, c'est-à-dire que les opérateurs sont placés devant les opérandes correspondants.
Par exemple pour écrire 7+9, en Scheme on écrira :
 
<source lang="haskell">
(+ 7 9)
</source>
 
Les différents opérateurs sont : +, -, *, quotient (division entière), remainder (reste)
La comparaison peut se faire avec >, >=, <, <= et =. Ces opérations renverront des booléens, par exemple :
 
<source lang="haskell">
(> 1 5)
</source>
 
Va renvoyer #f (faux), car 1 n'est pas plus grand que 5.
Ligne 57 ⟶ 64 :
La différence peut s'exprimer avec le not :
 
<source lang="haskell">
(not (= 5 13))
</source>
 
Va renvoyer vrai car 5 est différent de 13.
Ligne 78 ⟶ 87 :
 
Ce qui donne :
 
<source lang="haskell">(not(and a b))=(or((not a)(not b))</source>
<source lang="haskell">
<source lang="haskell">(not(and a b))=(or((not a)(not b))</source>
</source>
 
et
 
<source lang="haskell">(not (or a b))=(and(not a)(not b))</source>
<source lang="haskell">
<source lang="haskell">(not (or a b))=(and(not a)(not b))</source>
</source>
 
== Les caractères ==