首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haskell:列表理解是高阶函数吗?

Haskell:列表理解是高阶函数吗?
EN

Stack Overflow用户
提问于 2015-03-15 00:31:18
回答 2查看 529关注 0票数 4

我有一个任务,我们不应该使用任何高阶函数,一个列表理解能被归类为高阶函数吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-15 00:43:11

Haskell中的列表理解只是句法上的糖。它在Haskell 2010报告中定义为这里,如下所示:

代码语言:javascript
复制
[ e | True ]          = [e]
[ e | q ]             = [ e | q, True ]
[ e | b, Q  ]         = if b then [ e | Q ] else []
[ e | p <- l, Q ]     = let ok p = [ e | Q ]
                            ok _ = []
                        in concatMap ok  l
[ e | let decls, Q ]  = let decls in [ e | Q ]

注意在模式中使用了Q,它的范围超过限定符(可以包括函数)。所以答案是肯定的,一个列表理解是更高级的。

票数 13
EN

Stack Overflow用户

发布于 2015-03-15 05:19:13

“高阶”有一个特定的含义。如果一个函数接受一个参数,它是一个函数(或返回一个函数),则前者被称为高阶(例如:map)。

列表理解是表示列表值的表达式,而不是函数。所以答案是:不。

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

https://stackoverflow.com/questions/29055913

复制
相关文章

相似问题

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