我练了一些Haskell的了解\,case.. of并Maybe更好.
我在这里有一个小函数,Nothing如果数组为空,Just y如果y等于数组xs的头部,并且Just (tail xs)y不等于数组xs的头部,则应该返回.
我将函数的返回类型设置为,Maybe a因为在一种情况下它应该返回一个Int而在另一个中[Int].
funct :: Int -> [Int] -> Maybe a
funct = \y xs -> case xs of
[] -> Nothing
xs -> if ((head xs) == y)
then Just y
else Just (tail xs)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我得到它不能匹配类型的错误a用[Int].是不是a在Maybe a一般的还是它的事实影响了我"拿来主义"的a作为Int的Just y一部分吗?
编辑:好的我的建议是bs,我Just (tail …
我的问题是为什么Float不容易定义为Monoid类型的实例?我的意思是什么反对呢?Floats不具有标识元素,如果没有,为什么?另外,操作(*)和(+)有关联的一组浮动的,还是?