On Tue, Feb 11, 2014 at 6:59 AM, Ender Nafi Elekcioglu < endern...@keehuna.com> wrote:
> Try to calculate a recursive fib(33) under 0.5 second > {it's 14 seconds on a brand new Macbook Pro Retina, where it's ~100ms. for > Javascript.} > I'll take that bet: local fibArray function fib N if N = 0 or N = 1 then return N if fibArray[N] is empty then put fib(N-2) + fib(N-1) into fibArray[N] return fibArray[N] end fib on mouseUp put the long seconds into T get fib(33) put it && the long seconds - T end mouseUp Puts: 3524578 0.000022 It would be *really* good if LC supported co-routines, tail-recursion optimization, and native memo-ization of functions, but it's often not hard to memo-ize manually. Of course in this case recursion is unhelpful to begin with, but I'm pretending that it's unavoidable since it's the reason for the example. _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode