[Haskell-cafe] expension of fractions

Tom Pledger tom at pledger.gen.nz
Wed Jul 25 22:55:38 EDT 2007

Arie Groeneveld wrote:
  | Looking at the result of my rewriting gives me the idea it isn't
  | Haskelly enough.
  | Anyways, here's my interpretation:
  | -- period m/n base = (period length, preperiod digits, period digits)
  | period :: Integer -> Integer -> Integer -> (Int, ([Integer], [Integer]))


I'd be inclined to try using a Rational (from Data.Ratio) and the  
properFraction function, instead of numerators and denominators and gcd.

You could do away with the parts where you subscript a linked list, if  
you did something with elem and zip and span instead of findIndex and  

Instead of translating Nothing to -1 and Just i to i, you could use  
the result of findIndex directly in a case expression.


*Main> period 8 70 10

That should be (6,([1],[1,4,2,8,5,7])).


More information about the Haskell-Cafe mailing list