Answered step by step
Verified Expert Solution
Question
1 Approved Answer
6. (7 points) The foldr for lists (as above) is defined as: foldr f g [] = g foldr f g (x:xs) = f x
6. (7 points) The foldr for lists (as above) is defined as: foldr f g [] = g foldr f g (x:xs) = f x (foldr f g xs) Using foldr write the function group: : (a->a->Bool)-> [a]->[[a]] which, given a predicate p::a->a->Bool and a list, breaks the list into a series of (longest possible) sublists in which any two consecutive elements satisfy the predicate (in particular grouping the empty list will give the list containing the empt list) . For example, suppose that the predicate nbr determines whether two integers differ by at most one, then group nbr [] = [[]] group nbr [2,1,3,4,5,5,4,7,4,3, 3] [[2,1], [3,4,5,5,4],[7], [4,3,3]]
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started