x := 0
input n
while n is not equal to -99 {
if n > x then x := n
input n
}
output x
C'est sûr que présenter un langage très peu déclaratif avec en plus 2 façons d'assigner des valeurs (x := 0 et input n), ça peut ne pas être forcément évident pour les débutants. Il faudrait comparer avec d'autres paradigmes. Par exemple en fonctionnel :
loop x = do
n <- input
test n x
where
test (-99) x = return x
test n x = loop (max n x)
main = do
a <- loop 0
output a
Pour quelqu'un qui n'a jamais programmé mais qui a quelques notions de math (variables non ré-assignables, fonctions pures), ça peut être plus compréhensible. Pour ceux que ça intéresse, il faut ajouter ce qui suit en haut du fichier pour le compiler avec ghc :
module Main (main) where
import Monad
input = (liftM read) getLine :: IO Int
output = putStrLn . show
# Programmation impérative...
Posté par hsyl20 (site web personnel) . En réponse au journal Psychology of programming. Évalué à 3.
x := 0 input n while n is not equal to -99 { if n > x then x := n input n } output xC'est sûr que présenter un langage très peu déclaratif avec en plus 2 façons d'assigner des valeurs (x := 0 et input n), ça peut ne pas être forcément évident pour les débutants. Il faudrait comparer avec d'autres paradigmes. Par exemple en fonctionnel : Pour quelqu'un qui n'a jamais programmé mais qui a quelques notions de math (variables non ré-assignables, fonctions pures), ça peut être plus compréhensible. Pour ceux que ça intéresse, il faut ajouter ce qui suit en haut du fichier pour le compiler avec ghc :