小编Arp*_*was的帖子

haskell如何从另一个列表创建新列表?

假设我们有一个清单

x = [1..10]
Run Code Online (Sandbox Code Playgroud)

我们打算用这种方式创建另一个列表y:

y= [a|a<-x]
Run Code Online (Sandbox Code Playgroud)

因此,在创建列表yx,它访问x(从1到10)的每个元素并y以相同的顺序插入它.由于haskell中的列表是单链表,我们只能在其头部插入一个新元素.所以首先它插入1 []和我们有[1].然后它将2插入其头部,所以我们有[2,1].然后它插入3&我们有[3,2,1]&等等.所以最终我们应该这样y[10,9..1].但相反,我们得到y[1..10].为什么会这样?

haskell list-comprehension list lazy-evaluation

3
推荐指数
2
解决办法
1184
查看次数

我们可以在Haskell中使用lambda函数中的"where"吗?

我想知道我们是否可以在匿名函数中使用或不使用.我试着这样做:

\x -> k where k = x+1
Run Code Online (Sandbox Code Playgroud)

但是这会在'where'上给出一个解析错误.

lambda haskell

0
推荐指数
1
解决办法
328
查看次数