[Haskell-cafe] Re: General function to count list elements?
Juan Pedro Bolivar Puente
magnicida at gmail.com
Sat Apr 18 12:45:12 EDT 2009
The problem is that you must note in the type signature the fact that
'a' must be a member of typeclass Eq in order to be able to use ==
count :: (Eq a) => a -> [a] -> Int
count x ys = length (filter (== x) ys)
JP
michael rice wrote:
> 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
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list