• [^] # Re: Même remarque que précédemment

    Posté par . En réponse au journal Présentation des librairies pydiderotlibs dédiées à l'enseignement de python. Évalué à 2.

    Mathématiquement c'est peut être une horreur, mais en cuisine cela se pratique couramment ... :)

    Ça n'a rien d'une horreur mathématique, et ne dit on pas couramment « ajouter un ingrédient à la liste ». Comme te l'a dit JeanClaude : tu définis juste une algèbre sur les recettes de cuisine. Il est où le problème ? D'autant que ton exemple est mal choisi pour « détourner » l'arithmétique : c'est de l'arithmétique ton opérateur. Comme je l'ai dit plus haut : d'un certain point de vue les listes c'est des entiers unaires, et là tu as défini l'opération successeur (ou « ajouter 1 »).

    module Arithmetique = struct
     type nat = unit list
     let zero = []
     let succ l = () :: l
    end

    Voilà : un entier unaire c'est juste une liste de bâtons, zéro c'est la liste vide et la fonction qui calcule le successeur consiste à ajouter un élément dans la liste (c'est à dire ta surcharge de la fonction add).

    Toi ce que tu as écris c'est cela :

    module Recette = struct
     type t = {
     ingredients : string list;
     nom : string ;
     }
     let new () = {ingredients = []; nom = ""}
     let changer_nom nom recette = {recette with nom = nom}
     let add ing recette = {
     recette with
     ingredients = ing :: ingredients
     }
    let _ = Recette.(
     new ()
     |> changer_nom "Soupe de"
     |> add "patate"
     |> add "potiron"
    )

    Et ici ce que fais ma fonction add sur ma liste d'ingrédients, c'est la même chose que fait ma fonction succ sur les entiers unaires.

    Pour répondre à ton autre commentaire :

    Les mathématiques s'arrêteraient elles donc ou l'informatique commence :)

    ou l'informatique aurait elle une plus grande portée que les mathématiques ?

    :)

    Non, comme je le dis depuis le début : c'est la même chose. C'est juste une extension et une généralisation des travaux de Descartes quand il a algébrisé la géométrie mais, entre Descartes et nous, il s'est passé près de 400 ans. ;-)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.