Talk:Egyptian division: Difference between revisions

m
Line 11:
::::<lang Haskell>import Data.List (unfoldr)
 
egyptianQuotRem :: Integral a => a -> a -> (a, a)
:: Integral a
=> a -> a -> (a, a)
egyptianQuotRem m n =
foldr
(\(i, x) (q, r) ->
if x < r
then (q + i, r - x)
else (q, r))
(0, m) $
$ unfoldr
(\(i, x) ->
if x > m
then Nothing
else Just ((i, x), (i + i, x + x)))
(1, n)
 
main :: IO ()
9,659

edits