en: Now, a program asking your name and replying "Hello" using the name you entered: fr: Maintenant, un programme qui demande votre nom et répond "Hello" suivit du nom que vous avez entré: > main = do > print "What is your name?" > name <- getLine > print ("Hello " ++ name ++ "!") en: First, let us compare this with similar programs in a few imperative languages: fr: Premièrement, comparons ce code avec ceux de quelques langages de programmation impératif: # Python print "What is your name?" name = raw_input() print "Hello %s!" % name # Ruby puts "What is your name?" name = gets.chomp puts "Hello #{name}!" // In C #include int main (int argc, char **argv) { char name[666]; // <- An Evil Number! // What if my name is more than 665 character long? printf("What is your name?\n"); scanf("%s", name); printf("Hello %s!\n", name); return 0; } en: The structure is the same, but there are some syntax differences. en: The main part of this tutorial will be dedicated to explaining why. fr: La structure est la même, mais il y a quelques différences de syntaxe. fr: La partie principale de ce tutoriel sera consacrée à expliquer cela. en: In Haskell there is a `main` function and every object has a type. en: The type of `main` is `IO ()`. en: This means `main` will cause side effects. fr: En Haskell il y a une fonction `main` tous les objets ont un type. fr: Le type de `main` est `IO ()`. fr: Cela veut dire que `main` causera des effets secondaires. en: Just remember that Haskell can look a lot like mainstream imperative languages. fr: Rappelez-vous just que Haskell peut ressembler énormément aux principaux langages impératifs.