求问一道Haskell题目,非常感谢帮助解答!!

是一道英文题目,我害怕翻译不到位,还是把原题po上来了:Givethetypeanddefinitionforafuntioncalled'matches'thattak... 是一道英文题目,我害怕翻译不到位,还是把原题po上来了: Give the type and definition for a funtion called 'matches' that take an element and a list where the element is of the same type as the elements in the list. You should use recursive function style and may not use any library functions. Take care to deal with empty lists. For example: matches 3 [0,1,3,2,4] == [3] mathches 'a' ''aspidistra'' == " aa" matches 3 [ ] = [ ]

意思是:请给出一个名为‘matches’的函数的type类型和定义。这个函数有一个element和一个list (这一个element和这个list中的所有elements都是相同的类型)。需要使用递归函数的形式并且不得使用任何库函数。小心处理空lists。例如:matches 3 [0,1,3,2,4] == [3] mathches 'a' ''aspidistra'' == " aa" matches 3 [ ] = [ ]
急求!会的各位芝麻们麻烦尽快解答呐!多谢多谢!
急啊!!!
展开
 我来答
蒲公英随风飘舞哈
2014-08-17 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:521万
展开全部
matches :: (Eq a) => a -> [a] -> [a]
matches a [] = []
matches a (x:xs) = if a == x then x:matches a xs else matches a xs

类型必须是Eq的实例,不然==无法判断,至少例子上的整数和字符都是的,大部分常见的类型也都是Eq的实例
追问
太感谢了!能再多问一步吗?如果是用List comprehension style表示‘matches’ 应该怎么写?
追答
matches :: (Eq a) => a -> [a] -> [a]
matches a b = [x| x<-b, x == a]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式