Sorry, forgot to reply to all.

---------- Forwarded message ----------

From: Sean Bartell <

[hidden email]>

Date: Fri, Mar 20, 2009 at 5:58 PM

Subject: Re: [Haskell-beginners] Fractional Int

To: Zachary Turner <

[hidden email]>

For a type "a" to be Fractional requires there to be:

(/) :: a -> a -> a

You can't divide an Int by another Int and (in general) get a third

Int. You would probably want something like a "Fractionable"

typeclass, with

(/) :: a -> a -> b

which would result in a Rational, but Haskell doesn't have this.

2009/3/20 Zachary Turner <

[hidden email]>

>

> Why is there no instance of Fractional Int or Fractional Integer?? Obviously integers are fractions with denominator 1.? I was just doing some basic stuff to get more familiar with Haskell, and was seriously racking my brain trying to figure out why the following wouldn't work:

>

> intToString :: Int -> [Char]

> intToString n | n<10 = chr (n + (ord '0')):[]

> intToString n =

> ??? let q = truncate (n/10)

> ??????? r = n `mod` 10

> ??????? o = ord '0'

> ??????? ch = chr (r + o)

> ??? in ch:(intToString q)

>

> (yes, this ends up converting the string in reverse, but that's another issue :P)

>

> I later realized that I could use members of the Integral typeclass such as divMod, mod, etc to make this better, but nonetheless, why should truncate(n/10) be invalid, when n is an Int?? changing it to truncate((toRational n)/10) works, but I would expect Integers to already be rational.

>

> _______________________________________________

> Beginners mailing list

>

[hidden email]
>

http://www.haskell.org/mailman/listinfo/beginners>