• [^] # Re: Le cerveau n'est pas logique

    Posté par . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 3. Dernière modification le 02 novembre 2017 à 15:07.

    Je suis ingénieur, et je n'avais pas entendu parler de Lambda avant de faire un dea d'info.

    Moi aussi, je n'avais jamais entendu parler de lambda-calcul avant mon DEA. Ce que je voulais dire, dans le fond, c'est que le niveau d'abstraction requis pour le comprendre relève du premier cycle en mathématique (une fois que l'on a expliqué ce que signifie le lambda, ce qui prend deux minutes). Tu trouves (si je me fie à ce que j'ai déjà lu) que elm est un bon langage pour faire du développement web : ce type de code doit être assez standard en elm. Elm a la même syntaxe que Haskell où le lambda est remplacé par l'anti-slash \, c'est tout. Après c'est du map-reduce, on ne peut plus classique en programmation fonctionnel, ce qui n'exige pas un niveau de compréhension d'un niveau doctoral.

    En OCaml, on l'écrirait ainsi :

    (* reduce c'est tout simplement fold_left *)
    let reduce = List.fold_left
    (* opérateur de composition infixe *)
    let (<.>) f g = fun x -> f (g x)
    let map = List.map
    let zip = List.combine
    let mul (a,b) = a * b
    let sum = reduce (+) 0
    (* le lambda c'est le mot-clé fun *)
    let dot = fun xs ys -> (sum <.> map mul) (zip xs ys)
    dot [1; 2] [3; 4];;
    - : int = 11

    L'avantage pour des chercheurs de passer par du lambda-calcul, sans ajouter trop de sucre syntaxique, est d'avoir rapidement un prototype opérationnel comme preuve de concept.

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