Malcolm Wallace wrote: > > You need to call the memoised version in the recursive case. > > > module Fib where > > > > import Memo > > > > slow 0 = 0 > > slow 1 = 1 > > slow n = slow (n-1) + slow (n-2) > > slow n = fast (n-1) + fast (n-2) > > > fast n = memo slow n
It would also seem that one needs to write fast = memo slow instead, because otherwise a new memo-version of slow might be created for every call with some n (subject to let-floating?). However, the version: module Fib where import Memo slow 0 = 0 slow 1 = 1 slow n = fast (n-1) + fast (n-2) fast = memo slow is not particularly fast easier. Quite in contrary... strange. Janis. -- Janis Voigtlaender http://wwwtcs.inf.tu-dresden.de/~voigt/ mailto:[EMAIL PROTECTED] _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell