[Haskell-cafe] Rational and % operator remix
michael rice
nowgate at yahoo.com
Sun Mar 29 16:38:13 EDT 2009
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 <allbery at ece.cmu.edu> wrote:
From: Brandon S. Allbery KF8NH <allbery at ece.cmu.edu>
Subject: Re: [Haskell-cafe] Rational and % operator remix
To: "michael rice" <nowgate at yahoo.com>
Cc: "Brandon S. Allbery KF8NH" <allbery at ece.cmu.edu>, "Lennart Augustsson" <lennart at augustsson.net>, haskell-cafe at 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] allbery at kf8nh.comsystem administrator [openafs,heimdal,too many hats] allbery at ece.cmu.eduelectrical and computer engineering, carnegie mellon university KF8NH
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090329/1c7cc21c/attachment.htm
More information about the Haskell-Cafe
mailing list