我正在尝试将多个对象与 Sanctuary 合并。
使用 Ramda.js,我会做这样的事情(请参阅此处的 REPL ):
const R = require('ramda');
const initialEntry = { a: 0, b: 1 };
const entries = [{c: 2}, {d: 3, e: 4}, {f: 5, g: 6, h: 7}];
R.reduce(Object.assign, initialEntry, entries);
但是,对于 Santuary.js,以下代码行会引发异常。
S.reduce(Object.assign)(initialEntry)(entries)
这是我得到的例外:
! Invalid value
reduce :: Foldable f => (a -> b -> a) -> a -> f b -> a
^^^^^^
1
1) {"a": 0, "b": 1} :: Object, StrMap Number, StrMap FiniteNumber, StrMap Integer, StrMap NonNegativeInteger, StrMap ValidNumber
The value at position 1 is not a member of ‘b -> a’.
我对这个错误信息感到困惑。我使用S.reduce
不正确吗?另外,如果我写S.reduce(Object.assign)(initialEntry)([])
.