我正在寻找具有持久数据结构的功能库。我只需要嵌套数组和字典。有一些功能性的 javascript 库,但它们不适合不变性。我希望能够写作
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
虽然下划线在某些情况下很接近,特别是对于数组,但它会修改字典参数。我也可以使用clojurescript,但我更喜欢更轻量级的方法。