[Haskell-cafe] Rational and % operator remix

Ross Mellgren rmm-haskell at z.odi.ac
Sun Mar 29 13:45:02 EDT 2009


I think you probably mean ==, the comparison operator (function), not  
= (assignment in let-forms or where-forms)

-Ross

On Mar 29, 2009, at 1:40 PM, michael rice wrote:

> Hi,
>
> Thanks again for the help last night.
>
> The second function cf2 is an attempt to reverse the process of the  
> first function, i.e., given a rational number it returns a list of  
> integers, possibly infinite, but you shouldn't get into trouble if  
> you use 98%67 as input (output should be [1,2,6,5]). The interpreter  
> is complaining about the '=' following the 'in' keyword. Is there a  
> better way to state this?
>
> Michael
>
> import Data.Ratio
> cf :: [Int] -> Rational
> cf (x:[]) = toRational x
> cf (x:xs) = toRational x + 1 / cf xs
>
> cf2 :: Rational -> [Int]
> cf2 a = let ai = toRational (floor ((numerator a) / (denominator a)))
>             in
>               if a = ai
>                 then [a]
>                 else ai : cf2 ((toRational 1) / (subtract ai a))
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090329/53801054/attachment.htm


More information about the Haskell-Cafe mailing list