gpt4 book ai didi

haskell - Haskell 中的冗余 if 语句警告

转载 作者:行者123 更新时间:2023-12-02 17:20:39 25 4
gpt4 key购买 nike

所以我正在遵循教程 Learn you a Haskell for Great Good!到目前为止,我非常喜欢 Haskell。但在教程中提到的函数之一中,我收到一条警告,指出 if 语句是多余的。

编辑:让我说清楚,该函数的目的是与 elem 函数的工作方式完全相同(Haskell 默认提供的函数)。

这是原始函数:

elem' :: (Eq a) => a -> [a] -> Bool  
elem' y ys = foldl (\acc x -> if x == y then True else acc) False ys

本来有两个警告,一个是eta减少,所以我把函数名开头和结尾的ys去掉,得到:

elem' :: (Eq a) => a -> [a] -> Bool  
elem' y = foldl (\acc x -> if x == y then True else acc) False

现在我尝试将函数简化为以下内容,但结果出现错误:

elem' :: (Eq a) => a -> [a] -> Bool  
elem' y = foldl (\acc x -> x == y)

我想我对 Haskell 还很陌生,看不到明显的解决方案。有人可以告诉我什么代码更改可以使函数正常工作并消除编译器警告吗?

最佳答案

if x == y then True else accx == y || 相同ACC.

关于haskell - Haskell 中的冗余 if 语句警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051818/

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