gpt4 book ai didi

list - Haskell 中的函数 snd 如何在过滤器中工作

转载 作者:行者123 更新时间:2023-12-01 07:01:50 25 4
gpt4 key购买 nike

我将此代码输入到 ghci

Prelude> filter snd [('a',True),('b',True),('c',False),('d',True)]

为什么返回

[('a',True),('b',True),('d',True)]

而不是

[('a',True),('c',False),('d',True)]

snd 函数返回第二项,那么为什么不filter snd 过滤第二项呢?

最佳答案

您希望 filtercolloquial sense 中的列表中“过滤掉”元素该表达式,因此 filter snd 删除第二个项目。

不是这样的

如果您是对的,filter snd [1,2,3] 的计算结果将是 [1,3]。相反,它不进行类型检查,因为 snd 适用于元组,而不适用于数字。

那么,它是如何工作的呢?

filter f [item1, item2, ...] 返回所有 item 的列表,其中 f item

例如,filter even [1,2,3,4] 返回 [2,4]

snd ('b', True) 评估为 True 时,在您的示例中 filter 将包括 (b, True ) 在结果中。同样的道理,(c, False)也会被省略

关于list - Haskell 中的函数 snd 如何在过滤器中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56721855/

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