我喜欢功能编程概念,但我认为代码在大部分时间变得更大且更加混乱。
例如,如果您有这样的代码(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样式的变长比命令代码更长。
三元运算符 IS 功能编程样式。这不仅是命令,而且是表达。它返回结果值,并且不依赖副作用来工作。每种功能性编程语言都有类似的东西,包括诸如Haskell之类的" Ultra Pure"。
您无法使用三元运算符的唯一功能样式的事情将其传递到或从高阶功能中返回。出于某种奇异的原因说,您具有以下更高级的功能:
function runAdminFunction(f) {
return f(is_admin, 'active user', 'user inactive');
}
您可以致电runAdminFunction(F.if)
,但您无法调用runAdminFunction(?)
。在这种情况下,功能性编程库具有F.if
的目的,而不是因为在您的示例等情况下,它被认为是更可读或更好的功能样式。