gpt4 book ai didi

haskell - 在 Haskell 中过滤列表理解

转载 作者:行者123 更新时间:2023-12-03 19:56:54 25 4
gpt4 key购买 nike

我有这个列表理解:

[(x,y)| x<-[1..2], y<-[x..3], let z = x+y, odd z]
  • 正确的结果是 [(1,2),(2,3)],但我不明白为什么。什么是过滤器“让 z = x+y,奇数 z”
    正在做?其他代码中没有“z”,所以我不明白为什么这会改变一些东西。
  • 有人可以一步一步地解释这里发生了什么。

  • 非常感谢!

    最佳答案

    所以 x 从 1 到 2,y 从 x 到 3。

    所以对于第一个:

    x = 1
    y = 1
    z = 1 + 1 = 2

    z 不是奇数,因此不添加。
    然后:
    x = 1
    y = 2
    z = 1 + 2 = 3

    z 现在是奇数,因此将其添加。
    然后:
    x = 1
    y = 3
    z = 1 + 3 = 4

    z 是偶数,因此未添加。
    然后:
    x = 2
    y = 2
    z = 2 + 2 = 4

    z 是偶数。

    然后:
    x = 2
    y = 3
    z = 2 + 3 = 5

    z 是 5,奇数,因此添加。

    关于haskell - 在 Haskell 中过滤列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25913636/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com