[Haskell-cafe] Typing problems with basic arithmetic - help!

Marcin Tustin mm3 at zepler.net
Fri Sep 23 20:20:22 EDT 2005


For some reason the following code is producing an error message from ghci that the the patterns are non-exhaustive. Does anyone have any idea why that could be, given that the patterns are, at least in my meaning, provably exhaustive?

choosenonuniqueset n (a:r)
    | (length r) >  (n-1) = [ (sort (a:x)) | x <- (choosenonuniqueset (n-1) r)] 
                            `union`
                            [ (sort (a:x)) | x <- (choosenonuniqueset n r)]
    | (length r) == (n-1) = [a:r]
    | (length r) <  (n-1) = []

Error message is:

*Main> :reload
Compiling Main             ( birthday.hs, interpreted )
Ok, modules loaded: Main.
*Main> choosenonuniqueset 2 [1..5]
*** Exception: birthday.hs:(22,0)-(27,29): Non-exhaustive patterns in function choosenonuniqueset

*Main> choosenonuniqueset 5 [1..5]
[[1,2,3,4,5]]
*Main>


More information about the Haskell-Cafe mailing list