我有这个功能
sameElts :: Eq a => [a] -> Bool
Run Code Online (Sandbox Code Playgroud)
如果给定一个列表,当列表的所有元素相等时返回True,否则返回False.
例如:
sameElts [1,2] = False
sameElts [2,2] = True
sameElts [2] = True
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释Eq a =>对类型的代码片段的需求sameElts吗?我假设它强制类型为数字列表,以便使用equals运算符.
如何定义一个带有两个列表和输出1列表的追加函数.
所以plusplus [1,2,3] [4,5,6]应该回来[1,2,3,4,5,6].
到目前为止,我有以下内容:
plusplus :: [Int] -> [Int] -> [Int]
plusplus [] [] = []
plusplus [] [x] = [x]
plusplus [x] [] = [x]
plusplus (x:xs) (y:ys) = x: plusplus xs (y:ys)
Run Code Online (Sandbox Code Playgroud)
我想定义自己的++函数,但是使用递归.当我用两个列表实际执行它时,上面的代码给出了一个错误.
这是我通过命令获得的错误示例:
plusplus [1,2,3] [4,5,6]
[1,2,3*** Exception: baby.hs:(...): Non-exhaustive patterns in function plusplus
Run Code Online (Sandbox Code Playgroud)