小编Alw*_*esh的帖子

列表理解:从0到x的偶数

我目前正在学习Haskell,我必须说,我过得很糟糕。

我的任务是创建一个函数evens,该函数接受一个值x,并返回从0to到所有偶数的列表x

例如:

>  evens 10

> [2,4,6,8,10]
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用列表理解来修改一些示例函数,以实现我的目标,但是我简直陷入了很多错误,更糟糕的是,即使我尝试了很多事情,所有的一切都变得令人困惑。

我最后的尝试如下:

evens :: int -> [int]
evens n = [x | x <- [0..n], filter even x]
Run Code Online (Sandbox Code Playgroud)

它产生了错误:

ex1.hs:9:29:错误:

•无法将预期类型“布尔”与实际类型“ [整数]”匹配

•在表达式中: filter even x

在列表理解的步骤中: filter even x

在表达式中: [x | x <- [0 .. n], filter even x]

我确实看到它期望布尔值,但是坦率地说,我不知道在哪里或为什么。

任何帮助将不胜感激。我从没有使用过函数式编程语言的经验,并且很难弄清自己在思想上的错误。我觉得我已经超出了这个简单的问题,以至于难以置信。

haskell list-comprehension function list filter

3
推荐指数
1
解决办法
139
查看次数

标签 统计

filter ×1

function ×1

haskell ×1

list ×1

list-comprehension ×1