我喜欢函数式编程的概念,但我认为大多数时候代码会变得更大更混乱。
例如,如果您有这样的代码(JS):
let str = user.status == 'is_admin' ? 'active user' : 'user inactive';在代码长度较少或类似的FP样式中,很难做到这一点。
例如,在FP伪库中:
let str = F.if(F.propEq('status', 'is_admin'), 'active user', 'user inactive'))(user)但你可以看到它的10个字符比祈使式更多。
如果可以缩短,你有什么建议吗?
--代码只是示例,但我注意到在许多情况下,FP样式比命令式代码要长。
发布于 2019-07-08 18:08:27
三元操作符是函数式编程风格。这不仅仅是一种祈使语句,而是一种表达。它返回一个结果值,并且不依赖于副作用来工作。每一种函数式编程语言都有类似的东西,包括像Haskell这样的“超纯”语言。
唯一不能使用三元运算符的函数样式是将其传递给或从高阶函数返回。因为一些奇怪的原因,你有一个更高级的函数,比如:
function runAdminFunction(f) {
return f(is_admin, 'active user', 'user inactive');
}你可以打电话给runAdminFunction(F.if),但不能打电话给runAdminFunction(?)。函数式编程库使用F.if是为了在这种情况下保持完整性,而不是因为在像您的示例这样的情况下,在三元操作符上使用它被认为更具可读性或更好的功能风格。
https://stackoverflow.com/questions/56901718
复制相似问题