求问一道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 [ ] = [ ]
急求!会的各位芝麻们麻烦尽快解答呐!多谢多谢!
急啊!!! 展开
意思是:请给出一个名为‘matches’的函数的type类型和定义。这个函数有一个element和一个list (这一个element和这个list中的所有elements都是相同的类型)。需要使用递归函数的形式并且不得使用任何库函数。小心处理空lists。例如:matches 3 [0,1,3,2,4] == [3] mathches 'a' ''aspidistra'' == " aa" matches 3 [ ] = [ ]
急求!会的各位芝麻们麻烦尽快解答呐!多谢多谢!
急啊!!! 展开
1个回答
展开全部
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的实例
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]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询