Estoy buscando una biblioteca funcional con estructuras de datos persistentes. Solo necesito matrices y diccionarios anidados. Hay algunos functional javascript libraries, pero no están orientados a la inmutabilidad. Quiero ser capaz de escribirBiblioteca funcional Javascript con estructuras de datos persistentes
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
Mientras underscore se acerca en algunos casos, especialmente con las matrices, modifica los argumentos de diccionario. También podría usar clojurescript, pero preferiría un enfoque más liviano.
@FlavioCysne acabo de tener una mirada en ella y no se puede ver cómo se relaciona con mi pregunta. –
solo para aclarar (porque actualmente estoy trabajando en algo bastante similar), ¿necesita que el mapa persistente resultante se comporte como un objeto nativo incluyendo "." ¿acceso? Eso requeriría simular el uso de captadores, o copiar toda la estructura de la modificación y congelarla, lo que para grandes mapas planos se vuelve ineficiente con bastante rapidez (y ambos requieren ES5) ... o está bien con las funciones/métodos que acceden al contenido (mi acercamiento)? –
Estaría más feliz con la solución de acceso a documentos, sin embargo, viendo sus inconvenientes. No tengo mapas enormes de todos modos. El requisito de ES5 ... bueno, voy a pensar en tu enfoque de acceso a funciones. –