• [^] # Re: typage mou

    Posté par (site web personnel) . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 3.


    var compare = function(a, b, props) {
    var prop, field, comp, i, l = props.length;
    for(i = 0; i < l; i++) {
    prop = props[i];
    field = prop.field;
    if(!(field in a && field in b)) {
    return false;
    }
    if("comp" in prop) {
    comp = prop.comp;
    if(!(comp in a[field] && comp in b[field]) {
    return false;
    }
    if(a[field][comp]() !== b[field][comp]()) {
    return false;
    }
    } else if(a[field] !== b[field]) {
    return false;
    }
    }
    return true;
    };
    compare(a, b, [{field: "field1"}, {field: "field2", comp: "sum"}, {field: "field3", comp: "toLowerCase"}]);


    Bon, évidemment sum, toLowerCase doivent exister. Le code devient plus gros, mais c'est juste que le map n'existe pas de la même manière, mais au final je suis toujours totalement dynamique et ma comparaison de champ reste facile et simple à écrire.

    Non pas que je veuille que haskell ne serve à rien, mais j'ai toujours pas compris l'intérêt à se casser la tête. Peut-être par rapport à des langages pauvres (comme c/c++/java par exemple) mais par rapport à js, as3, surement ruby, peut-être python ça me parait bien complexe (faut vraiment réfléchir pour comprendre le code haskell un peu plus haut, d'ailleurs le cheminement n'est pas simple, alors que c'est bidon, juste comparer une liste de propriété)
    Maintenant, je pense bien que ce genre de paradigme à une utilité, enfin j'espère ;-)