У меня есть этот список понимание:фильтр в списке понимание в Haskell
[(x,y)| x<-[1..2], y<-[x..3], let z = x+y, odd z]
- Право результат [(1,2), (2,3)], но я не могу понять, почему , Что такое фильтр «let z = x + y, odd z» делать? В другом коде нет «z», поэтому я не могу понять, почему это что-то меняет.
- Может кто-нибудь объяснить, шаг за шагом, что здесь происходит.
Большое спасибо!
Если это помогает думать так: '[(x, y) | x <- [1..2], y <- [x..3], нечетное (x + y)] '. – karakfa
'для x в [1,2]: для y в диапазоне (x, 4): z = x + y; if (нечетное (z)): yield (x, y) '. –