【发布时间】:2014-09-19 01:12:08
【问题描述】:
我有这个列表理解:
[(x,y)| x<-[1..2], y<-[x..3], let z = x+y, odd z]
- 正确的结果是 [(1,2),(2,3)],但我不明白为什么。什么是过滤器“让 z = x+y,奇数 z” 正在做?其他代码中没有“z”,所以我不明白为什么这会改变一些东西。
- 谁能一步一步解释这里发生了什么。
非常感谢!
【问题讨论】:
-
如果有帮助的话
[(x,y)| x<-[1..2], y<-[x..3], odd (x+y)]. -
for x in [1,2]: for y in range(x,4): z=x+y; if(odd(z)): yield (x,y).
标签: haskell filter list-comprehension