Je me suis inspiré pour essayer Haskell nouveau basé sur une récente réponse. Mon big block est que la lecture d'un fichier ligne par ligne (une tâche simple dans des langages tels que Perl) semble compliqué dans un langage fonctionnel. Comment lire un fichier ligne par ligne dans votre langue préférée?
De sorte que nous sommes de comparer des pommes à d'autres types de pommes, s'il vous plaît écrire un programme qui numérote les lignes du fichier d'entrée. Donc, si votre entrée est:
Line the first.
Next line.
End of communication.
La sortie devrait ressembler:
1 Line the first.
2 Next line.
3 End of communication.
Je vais poster mes Haskell programme comme un exemple.
Ken a fait observer que cette question ne précise pas comment les erreurs doivent être traitées. Je ne suis pas trop inquiet à ce sujet parce que:
La plupart des réponses a fait la chose la plus évidente et lire à partir de
stdin
et a écrit à l'stdout
. La bonne chose est qu'il oblige l'utilisateur à réorienter les flux de la manière qu'ils veulent. Donc, sistdin
est redirigé à partir d'un fichier inexistant, le shell va prendre soin de signalement de l'erreur, par exemple.La question est plus destiné à la façon dont une langue ne IO que la façon dont il gère les exceptions.
Mais, si nécessaire, la gestion des erreurs est manquant dans une réponse, n'hésitez pas à modifier le code pour corriger ou de faire une note dans les commentaires.