假设我们有一个清单
x = [1..10]
Run Code Online (Sandbox Code Playgroud)
我们打算用这种方式创建另一个列表y:
y= [a|a<-x]
Run Code Online (Sandbox Code Playgroud)
因此,在创建列表y时x,它访问x(从1到10)的每个元素并y以相同的顺序插入它.由于haskell中的列表是单链表,我们只能在其头部插入一个新元素.所以首先它插入1 []和我们有[1].然后它将2插入其头部,所以我们有[2,1].然后它插入3&我们有[3,2,1]&等等.所以最终我们应该这样y做[10,9..1].但相反,我们得到y了[1..10].为什么会这样?
我想知道我们是否可以在匿名函数中使用或不使用.我试着这样做:
\x -> k where k = x+1
Run Code Online (Sandbox Code Playgroud)
但是这会在'where'上给出一个解析错误.