
5 Nov
2001
5 Nov
'01
10:12 a.m.
Luke Maurer wrote:
My only issue (and it is nitpicky) is that I don't really like having to declare an extra function (euler') in the same scope as euler. I tried playing with where clauses or let expressions, but I couldn't find a way to make GHC happy without introducing a bunch of extra variables (since I'd need new versions of the arguments to euler; in euler', I just used the same names. Also, nested "where" doesn't work as I'd like it to.) Is there, in fact, a more concise way to express what I'm doing?
How about? euler :: (Num a) => (a -> a -> a) -> a -> a -> [a] euler f' dt f0 = euler' f0 0 where euler' f t = f : euler' fnext (t + dt) where fnext = f + dt * (f' f t) -- Lennart