首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这些函数在Haskell中被认为是高阶函数?

为什么这些函数在Haskell中被认为是高阶函数?
EN

Stack Overflow用户
提问于 2018-12-29 00:55:05
回答 1查看 105关注 0票数 0

在过去的一次考试中,我在网上找到了一篇论文,它要求我们使用列表理解重写以下高阶函数:

代码语言:javascript
复制
hofOne = map (*2) [1,2,3]

hofTwo = filter isSquare randomList

我不确定我是否误解了高阶函数,因为我认识到mapfilter函数本身都是高阶函数,但我不明白这如何使hofOnehofTwo函数变得更高阶,因为这两个函数既不接受函数作为参数,也不返回函数。

我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-11-26 02:14:49

你是对的。Wikipedia - Higher-order function文章将高阶函数定义为接受一个参数中的函数或返回一个函数作为其结果。其目的可能是将高阶函数mapfilter重写为列表理解。

在没有给出问题答案的情况下,这里有两个示例,说明如何在预期的样式中使用列表理解。

代码语言:javascript
复制
-- map as list comprehension
[doSomething x | x <- [1..10]]

-- filter as list comprehension
[x | x <- [1..10], somethingThatReturnsBool x]

对于任何不熟悉Haskell列表理解的人,可以看看这个article

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

https://stackoverflow.com/questions/53961803

复制
相关文章

相似问题

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