cf2 :: Rational -> [Int]
cf2 a = let ai = floor a          <-- Doesn't this make ai an Int?   -Michael
            in
              if a == (toRational ai)
                then [ai]
                else ai : cf2 (1 / (a - ai))


--- On Sun, 3/29/09, Brandon S. Allbery KF8NH <allb...@ece.cmu.edu> wrote:

From: Brandon S. Allbery KF8NH <allb...@ece.cmu.edu>
Subject: Re: [Haskell-cafe] Rational and % operator remix
To: "michael rice" <nowg...@yahoo.com>
Cc: "Brandon S. Allbery KF8NH" <allb...@ece.cmu.edu>, "Lennart Augustsson" 
<lenn...@augustsson.net>, haskell-cafe@haskell.org
Date: Sunday, March 29, 2009, 4:27 PM

On 2009 Mar 29, at 16:19, michael rice wrote:but I'm still at least one error 
short of a clean run

Main> :load cf.hs
ERROR "cf.hs":7 - Type error in application
*** Expression     : ai : cf2 (1 / (a - ai))
*** Term           : ai
*** Type           : Ratio Integer
*** Does not match : Int

Where did I go wrong or what did I leave out?

cf2 returns [Int], but you're using it as the tail of a list starting with ai, 
which is a Rational.  Need to decide which you actually want.  At a guess:
> cf2 a = let ai = floor a>             rai = toRational ai>          in>       
>       if a == rai>             then [ai]>             else rai : cf2 (1 / (a 
> - ai))
 -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] 
allb...@kf8nh.comsystem administrator [openafs,heimdal,too many hats] 
allb...@ece.cmu.eduelectrical and computer engineering, carnegie mellon 
university    KF8NH
 



      
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to