繁体   English   中英

函数式编程

[英]Functional programming If

我喜欢函数式编程的概念,但是我认为很多时候代码变得更大且更混乱。

例如,如果您有这样的代码(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样式比命令性代码更长。

三元运算符函数式编程风格。 这不仅仅是命令性的陈述,还是表达 它返回结果值,并且不依赖于副作用才能起作用。 每种函数式编程语言都有类似的东西,包括像Haskell这样的“超纯”语言。

您不能使用三元运算符执行的唯一功能样式就是将其传递给高阶函数或从高阶函数返回。 出于某种奇怪的原因,您有一个高阶函数,例如:

function runAdminFunction(f) {
  return f(is_admin, 'active user', 'user inactive');
}

您可以调用runAdminFunction(F.if) ,但不能调用runAdminFunction(?) 函数式编程库之所以具有F.if是为了在此类情况下保持完整性,这不是因为在您的示例情况下,在三元运算符上使用F.if是一种更易读或更好的功能风格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM