Take this obscure function:
\begin{code}
func :: (a -> a -> Maybe a) -> a -> [a] -> [a]
func f s0 xs0 = foldr (\x xs s -> maybe (xs s) ((x:) . xs) (f s x))
return xs0 s0
\end{code}
And mergeGroupToList becomes:
\begin{code}
mergeGroupToList g xs = func mergeGroups g xs
\end{code}
Cheers,
Spe
On Thu, 11 Jan 2007, Seth Gordon wrote:
> I have a data type "Group", representing a group of geographic
> information that is all referring to the same location, and a function
> "mergeGroups" that tries to merge two groups:
>
> mergeGroups :: Group -> Group -> Maybe Group
>
> Then I have
I have a data type "Group", representing a group of geographic
information that is all referring to the same location, and a function
"mergeGroups" that tries to merge two groups:
mergeGroups :: Group -> Group -> Maybe Group
Then I have a function "mergeGroupToList" that tries to merge its fi