Je recherche une bibliothèque fonctionnelle avec des structures de données persistantes. J'ai seulement besoin de tableaux et de dictionnaires imbriqués. Il y a quelques functional javascript libraries, mais ils ne sont pas orientés vers l'immuabilité. Je veux être capable d'écrireBibliothèque fonctionnelle Javascript avec structures de données persistantes
var dict = makeDictionary({
'foo': 1;
'bar': {
'ely': 2;
}
});
var newDict = dict.assoc('foo', 42).assoc('bar', 'tender', 30).dissoc('bar', 'ely');
assert.eq dict.bar.ely, 2; // unchanged
assert.eq newDict.bar.tender, 30; // added
assert.eq newDict.bar.ely, undefined; // removed
Alors que underscore se rapproche, dans certains cas, en particulier avec les tableaux, il modifie les arguments du dictionnaire. Je pourrais aussi utiliser clojurescript, mais je préférerais une approche plus légère.
@FlavioCysne Je viens d'avoir un coup d'oeil et ne peut pas voir comment il est lié à ma question. –
juste pour clarifier (parce que je travaille actuellement sur quelque chose de très similaire), avez-vous besoin de la carte persistante résultant se comporter comme un objet natif, y compris "." accès? Cela nécessiterait soit de simuler en utilisant des getters, soit de copier toute la structure à partir de la modification et la geler, ce qui pour les grandes cartes plates devient inefficace assez rapidement (et les deux nécessitent ES5) ... ou bien êtes-vous satisfait des fonctions/méthodes accédant au contenu (mon approche)? –
Je serais plus heureux avec la solution d'accès doc, voir ses inconvénients, cependant. Je n'ai pas d'énormes cartes de toute façon. L'exigence ES5 ... eh bien, je vais réfléchir à votre approche d'accès aux fonctions. –