[Haskell-cafe] [Q] Using Class

Hamilton Richards ham at cs.utexas.edu
Fri Feb 13 11:19:15 EST 2004


At 4:53 PM +0100 2/13/04, Andre Betz wrote:
>Hi,
>
>I'm a really beginner to haskell and I have a question about using classes.
>I don't now really what this function does. So I will try to use it to see
>what it will put out
>
>position :: ( Enum a , Eq b ) => b -> [b] -> [a]
>position x = position_snd . zip ( enumFrom $ toEnum 1 )
>     where position_snd [] =  []
>	  position_snd ((p,y):ys) | x == y    = p : position_snd ys
>				  | otherwise =     position_snd ys
>
>
>My roblem is now that I don't know how to use it.
>
>I tried "head position 2 [1,2,3,4]" but I always get an error.

Try this:

    head (position 33 [11,22,33,44,55]) :: Int

You need the () because otherwise head's argument is just position.

You need the ":: Int" because otherwise the type of the result is not 
determined-- on the command line there's not enough context to pick 
out one type from all the types in Enum.

Hope that helps,

--Ham
-- 
------------------------------------------------------------------
Hamilton Richards, PhD           Department of Computer Sciences
Senior Lecturer                  The University of Texas at Austin
512-471-9525                     1 University Station C0500
Taylor Hall 5.138                Austin, Texas 78712-0233
ham at cs.utexas.edu                hrichrds at swbell.net
------------------------------------------------------------------


More information about the Haskell-Cafe mailing list