Asa*_*saf 4 warnings haskell if-statement
所以我正在按照教程学习一个Haskell的好东西!到目前为止,我绝对喜欢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
Run Code Online (Sandbox Code Playgroud)
最初有两个警告,一个是eta减少,所以我从函数名称的开头和结尾删除了ys到达:
elem' :: (Eq a) => a -> [a] -> Bool
elem' y = foldl (\acc x -> if x == y then True else acc) False
Run Code Online (Sandbox Code Playgroud)
现在我尝试将函数减少到以下,它会导致错误:
elem' :: (Eq a) => a -> [a] -> Bool
elem' y = foldl (\acc x -> x == y)
Run Code Online (Sandbox Code Playgroud)
我想我只是Haskell的新手,看不出明显的解决方案.有人能告诉我哪些代码更改会使函数正常工作并删除编译器警告?