Site WWW de Laurent Bloch
Slogan du site

ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.

Pour recevoir (au plus une fois par semaine) les nouveautés de ce site, indiquez ici votre adresse électronique :

Forum de l’article

Les programmes du manuel ISN traduits en Scheme

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rappel de la discussion
Les programmes du manuel ISN traduits en Scheme
Frédéric LOYER - le 21 février 2024

Le programme de résolution du second degré me fait réagir et c’est sûrement dû à une exposition à des langages typés statiquement. Ici la fonction retourne selon le cas 3 types de valeurs... un booléen lorsqu’il n’y a pas de racines, un nombre lorsqu’il y en a une, et une liste lorsqu’il n’y en a 2.

En Ocaml et dans beaucoup de langages, cela ne passerait pas. Une variable=1 type déterminé à la compilation. La solution logique est de retourner une liste dans tous les cas avec dedans 0, 1 ou 2 valeurs.

La solution gagnerait peut-être en modularité, ainsi, le résultat serait compatible avec les fonctions usuelles portant sur les listes. Et dans plusieurs cas, il ne serait pas nécessaire de faire des cas particuliers selon le type.

On pourrait par exemple écrire

(let* ((a (read))
(b (read))
(c (read))
(resultat (Calcul a b c)))
(display (length resultat) "Racine(s) :")
(map (fun (r) (newline) (display r) resultat))

Les programmes du manuel ISN traduits en Scheme
Laurent Bloch - le 21 février 2024

Oui, votre critique est fondée. Ces programmes sont tous un peu bâtards (au sens propre), parce qu’au départ traduits ligne à ligne de programmes écrits en Java ou en OCaml pour le manuel mentionné (“Informatiques et sciences du numérique” chez Eyrolles), en suivant la progression du manuel, à mon avis discutable, et en tout cas peu adaptée à un langage fonctionnel comme Scheme. Cf. un article de commentaire de ces compromis. Au fur et à mesure des critiques je corrige...

Derniers commentaires

L’irrésistible ascension de Nvidia
la première question est la définition de l’intelligence artificielle. Elle ne se réduit pas aux (…)

L’irrésistible ascension de Nvidia
Je suis d’accord avec les lignes générales du texte, mais avec quelques nuances. Il me semble (…)

Une illustration de la concurrence monopolistique
Attention : les GPU sont très forts en produits scalaires, (en multiplication de matrices par (…)

Python
"on dit plutôt maintenant développeurs" ... Il y a (au moins) deux expressions qui m’exaspèrent (…)

À la Commission de développement de l’informatique du Ministère des Finances
Article tout aussi instructif que plaisant à lire. On pensera aussi à "Comédies Françaises", le (…)