【发布时间】:2015-07-15 18:19:19
【问题描述】:
我有一个关于列表理解的问题
[(x,y)| x<-[1..2], y<-[x..3], let z = x+y, odd z]
为什么这会评估为:
[(1,2),(2,3)]
?
z 去哪儿了?
谢谢
【问题讨论】:
-
[(x,y)| x<-[1..2], y<-[x..3]]计算结果不同。试试看。。 -
z用于谓词odd z,因此这只会返回总和为奇数的对。 -
但是 2 并不奇怪...我需要更多解释。脑袋疼^^
-
z是x和y的总和,即对中两个元素的总和。1+2是奇数,2+3也是奇数。 -
啊,现在我明白了。 (1,1) 否, (1,2) 是, (1,3) 否, (2,2) 否, (2,3) 是导致 [(1,2),(2,3)]谢谢
标签: haskell list-comprehension evaluation