我正在学习有关无点函数的知识,并尝试以该风格实现此递归空值移除器。
它能够工作,但不是无点函数:
function removeNulls(obj) {
return R.ifElse(
R.either(R.is(Array), R.is(Object)),
R.pipe(
R.filter(R.pipe(R.isNil, R.not)),
R.map(removeNulls)
),
R.identity
)(obj)
}
module.exports = removeNulls
下面是我未能正常运作的尝试:const removeNulls = R.ifElse(
R.either(R.is(Array), R.is(Object)),
R.pipe(
R.filter(R.pipe(R.isNil, R.not)),
// throws `ReferenceError: removeNulls is not defined`
R.map(removeNulls)
),
R.identity
)
Y
组合器,但我不知道该怎么做。这有点难以搜索... - Henry MarshallrecurseAction
不是pointfree的,而且它也不是递归的——应该是map(recurseAction(action))
。 - Bergi