
:) Thanks.
2011/3/24 Brent Yorgey
On Thu, Mar 24, 2011 at 06:34:57PM +0800, 吴兴博 wrote:
2. f1 :: (Integral a) => a -> String f2 :: (Integral a) => String -> a
pipe = f1 . f2 It is clear that pipe is String -> String,
Actually, this code will give an "ambiguous type" error, since the compiler cannot figure out what type 'a' should be. And the type that is chosen may make a difference for the behavior.
but.(1)How can I know what instance that 'a' is. (2)How can I determine what instance of 'a' is.
If you know what type you want to use for 'a' you can specify it with a type annotation, like this:
pipe = f1 . (f2 :: String -> Int)
-Brent
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
-- ---------------- 吴兴博