
-------- Original-Nachricht --------
Datum: Mon, 21 Dec 2009 11:25:46 +0100 Von: Deniz Dogan
An: kane96@gmx.de CC: beginners@haskell.org Betreff: Re: [Haskell-beginners] Enum for natural numbers
2009/12/21
: Now everything works but to print Z also for negative Integers. Don't know how to implement the <=0 or le0 in this case again:
instance Enum Nat where toEnum 0 = Z toEnum (n+1) = S(toEnum n) fromEnum Z = 0 fromEnum (S n) = 1 + fromEnum n
Again, look into guards. You are definitely on the right track.
Again, you should look into guards.
instance Enum Nat where toEnum n | n <= 0 = Z | otherwise = ... -- do what with n? fromEnum Z = 0 fromEnum (S n) = 1 + fromEnum n
I did it that way: instance Enum Nat where toEnum n | n <= 0 = Z | otherwise = S(toEnum (n-1)) fromEnum Z = 0 fromEnum (S n) = 1 + fromEnum n In another task I should create an infinite list: allNats :: [Nat] I would have done it in a recursion but there issn't a parameter to call allNats with -- GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01