moumou > tu as oublié le map ^^
En fait ça correspond à ce que j'ai écrit en caml (je suppose que "all" = "List.for_all"

) sauf que, euh, pourquoi ne pas définir une fonction, comme moi ?
ah je crois que je comprends : c'est parce que haskell est paresseux c'est ça ? donc en fait "map taille m" ne va pas calculer la taille de tous les éléments ?
_all (( = ) (length m)) (map length m)
en caml on peut écrire la même chose :open List
let carre m = for
bon ça marche mais c'est un peu nul parce que ça calcule (peut-être inutilement) la taille de *tous* les éléments de la liste (quand il évalue le map) et ensuite seulement ça va évaluer le for_all et faire les tests. Mais haskell ne fait pas ça je suppose (c'est call-by-need, donc il ne calcule effectivement la longueur qu'au moment de tester l'égalité, c'est bien ça ?)
t carre m = for_all (compose (( = ) (length m)) length) m
(par contre ce qui poutre vachement plus c'est bien sûr :let compose f g x = f (g x)
le
ength m) *** length) m
ou avec un opérateur :let ( *** ) f g x = f (g x)
let carre m = for_all (( = ) (l

²)