[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: functional languages ill-suited for large programs?
> Date: Fri, 31 Oct 2003 18:57:46 -0500 (EST)
> From: Alan Bawden <Alan@lcs.mit.edu>
> Cc: Vadim Nasardinov <firstname.lastname@example.org>, email@example.com
> From: Jim Blandy <firstname.lastname@example.org>
> Date: 31 Oct 2003 17:14:57 -0500
> That is, whether or not it's *worthwhile* to memoize a function, a
> pure lazy language doesn't even allow me to *express* a memoized
> function behind a purely functional interface, even though the
> resulting behavior is purely functional.
> In Haskell, this:
> fib 0 = 0
> fib 1 = 1
> fib n = fib (n - 1) + fib (n - 2)
> is a very inefficient way to compute factorial, whereas this:
It's also a very inefficient way to compute fibonacci numbers ;-)
> fib = ((map fib' [0 ..]) !!)
> fib' 0 = 0
> fib' 1 = 1
> fib' n = fib (n - 1) + fib (n - 2)
> is a memoized version that executes quite quickly. It seems to me that I
> have just expressed the notion of a memoized function in a purely
> functional language.
Very nice example! Thanks.