gpt4 book ai didi

haskell - 前缀函数作为过滤函数的谓词

转载 作者:行者123 更新时间:2023-12-02 14:11:50 24 4
gpt4 key购买 nike

这里是来自 Learn You a Haskell for Great Good!filter 函数的类型签名和定义:

filter' :: (a -> Bool) -> [a] -> [a]
filter' _ [] = []
filter' p (x:xs)
| p x = x : filter' p xs
| otherwise = filter' p xs

书中使用elem的用法示例如下:

filter' (`elem` ['a'..'z']) "Hell0!"

返回结果:

"ell"

在这个特定的示例中,是否有可能使用 elem 作为前缀函数而不是中缀函数作为谓词?

从更一般的意义上来说,有没有办法只提供第二个参数来部分应用前缀函数?

预先感谢您的帮助!

最佳答案

通过创建 lambda(这适用于采用 2 个以上参数的函数):

filter' (\a -> elem a ['a'..'z']) "Hell0!"

或者使用flip:

filter' (flip elem ['a'..'z']) "Hell0!"

关于haskell - 前缀函数作为过滤函数的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994285/

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