Envoyé par
Garulfo
Ton premier point est exact. Ton deuxième l'est aussi. Pour le troisième, tu oublies que f prend un argument. Comme je l'ai dit ce code n'est pas super car f et x sont des noms très peu significatifs.
Merci pour la clarification du code source, mais je ne comprends toujours pas pourquoi il y a deux appels à (read). Je vais formuler les choses différemment : combien de fois est exécuté le read(p) de cette ligne ?
(let traiter-un-token ([token (read p)])
Une fois ou bien à chaque itération ? Vu que c'est censé être une initialisation de la variable définie dans le let, je dirais une seule fois. Et donc si c'est bien le cas, je comprends maintenant la manière dont ce bout de code tourne...
Envoyé par
Garulfo
Non pas vraiment car la boucle ici est une forme de while ou de do. Ce qui change dans la manière d'écrire c'est d'utiliser une fonction récursive. Mais ça, c'est quelque chose que tout informaticien doit maîtriser.
J'ai déjà utilisé les fonctions récursives mais jamais pour lire le contenu d'un fichier. C'est ça qui me surprend et que je trouve original ! Mais franchement je crois quand j'aurai à le faire moi même je passerai par une simple boucle... Désolé pour la beauté du geste ;-)
Partager