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

    Posté par . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 4.

    J'imagine que les usagers de ce genre de DSL sont docteur en mathématique pour le calcul linéaire. Je ne vois pas qui d'autres pourraient s'en servir vu le formalisme mathématique retenu.

    Tu ne penses pas que tu exagères un peu là ? C'est du niveau premier cycle en mathématique (allez, fin de premier cycle pour être gentil).

    Exemple sur la définition du produit scalaire :

    dot = λxs ys. (reduce (+) 0 ◦ map (∗)) (zip xs ys)
    

    et sa traduction en python :

    from operator import mul
    dot = lambda xs,ys: sum(map(mul, xs, ys),0)
    >>> dot([1,2], [3,4])
    11

    la fonction zip existe aussi en python :

    >>> zip([1,2],[3,4])
    [(1, 3), (2, 4)]

    la différence étant que les fonctions map n'ont pas la même interface entre les deux langages. La définition du produit scalaire entre vecteurs en python, je l'ai prise de la documentation python officielle. Sinon, voir aussi cette réponse sur stackoverflow :

    from operator import add, mul
    sum_r = lambda xs: reduce(add, xs, 0)
    dot = lambda *lists: sum_r(reduce(mul, data) for data in zip(*lists))
    >>> dot([1,2], [3,4])
    11

    C'est du python on ne peut plus idiomatique.

    Et ne me parle pas de je ne sais quel grade doctoral : j'ai le même grade universitaire qu'un ingénieur, à savoir un bac+5.

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