[Haskell-cafe] General function to count list elements?

michael rice nowgate at yahoo.com
Sat Apr 18 10:56:20 EDT 2009


Is there a general function to count list elements. I'm trying this

count :: a -> [a] -> Int
count x ys = length (filter (== x) ys)

with this error upon loading

=============

[michael at localhost ~]$ ghci count
GHCi, version 6.10.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main             ( count.hs, interpreted )

count.hs:2:29:
    Could not deduce (Eq a) from the context ()
      arising from a use of `==' at count.hs:2:29-32
    Possible fix:
      add (Eq a) to the context of the type signature for `count'
    In the first argument of `filter', namely `(== x)'
    In the first argument of `length', namely `(filter (== x) ys)'
    In the expression: length (filter (== x) ys)
Failed, modules loaded: none.
Prelude> 

=============

Not sure what it's trying to tell me other than I need an (Eq a) somewhere.

Michael





      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090418/e5669273/attachment.htm


More information about the Haskell-Cafe mailing list