首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数式编程

函数式编程
EN

Stack Overflow用户
提问于 2019-07-05 10:56:25
回答 1查看 106关注 0票数 0

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

例如,如果您有这样的代码(JS):

代码语言:javascript
复制
let str = user.status == 'is_admin' ? 'active user' : 'user inactive';

在代码长度较少或类似的FP样式中,很难做到这一点。

例如,在FP伪库中:

代码语言:javascript
复制
let str = F.if(F.propEq('status', 'is_admin'), 'active user', 'user inactive'))(user)

但你可以看到它的10个字符比祈使式更多。

如果可以缩短,你有什么建议吗?

--代码只是示例,但我注意到在许多情况下,FP样式比命令式代码要长。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-08 18:08:27

三元操作符函数式编程风格。这不仅仅是一种祈使语句,而是一种表达。它返回一个结果值,并且不依赖于副作用来工作。每一种函数式编程语言都有类似的东西,包括像Haskell这样的“超纯”语言。

唯一不能使用三元运算符的函数样式是将其传递给或从高阶函数返回。因为一些奇怪的原因,你有一个更高级的函数,比如:

代码语言:javascript
复制
function runAdminFunction(f) {
  return f(is_admin, 'active user', 'user inactive');
}

你可以打电话给runAdminFunction(F.if),但不能打电话给runAdminFunction(?)。函数式编程库使用F.if是为了在这种情况下保持完整性,而不是因为在像您的示例这样的情况下,在三元操作符上使用它被认为更具可读性或更好的功能风格。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56901718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档