Ce que je veux dire c'est que votre familiarité avec un langage fait croire que ce langage est clair, mais qu'en fait ce n'est le cas que pour ceux qui sont familiarisés avec ses idiomes.
Voilà un exemple de programme pas très clair: je veux afficher Hello, world! et je dois écrire:
Par rapport à mon but il y a plein de bruit que je ne comprends pas. Je vois bien que le biscuit c'est le printf(...) mais quel est le rapport entre mon but et le main et les #include, argc, argv ? Ce n'est pas clair parceque beaucoup d'éléments sont sans lien apparent avec mon but. Quand tu lis
main :: IO ()
main = (take 10 <$>
sort <$>
map toFloat <$>
filter (\s -> length s > 0 && (s !! 0) /= '#') <$>
cat "fichier") >>= output
on retrouve un peu de bruit main et output mais la plupart des éléments peuvent facilement être rattachés à la description de la tâche. Comme dans ton exemple
chain(cat(),
filter(lambda s: s and s[0] != '#'),
map(float),
sort(),
head(n=10),
output())
Il y a un petit peu de bruit, le chain mais les autres éléments sont facilement rattachables à la description de la tâche à effectuer.
[^] # Re: Gestion des erreurs
Posté par Michaël (site web personnel) . En réponse au journal chaintools, outils unix avec syntaxe pythonique. Évalué à 2.
Voilà un exemple de programme pas très clair: je veux afficher
Hello, world!et je dois écrire:Par rapport à mon but il y a plein de bruit que je ne comprends pas. Je vois bien que le biscuit c'est le
printf(...)mais quel est le rapport entre mon but et lemainet les#include,argc,argv? Ce n'est pas clair parceque beaucoup d'éléments sont sans lien apparent avec mon but. Quand tu lison retrouve un peu de bruit
mainetoutputmais la plupart des éléments peuvent facilement être rattachés à la description de la tâche. Comme dans ton exempleIl y a un petit peu de bruit, le
chainmais les autres éléments sont facilement rattachables à la description de la tâche à effectuer.