Hallo, On Wed, Jan 14, 2009 at 8:47 PM, Dougal Stanton <ith...@gmail.com> wrote: >> (defun avg (&rest args) >> (/ (apply #'+ args) (length args))) >> >> Or as a macro like this: >> >> (defmacro avg (&rest args) >> `(/ (+ ,@args) ,(length args))) >> >> The reason the macro is better is that the length of the list is known at >> compile time, so you don't need to traverse the list to calculate the length >> of the list. >> > > > I'm trying to work out how awesome the (+) operator is that you can > add the values together without needing to traverse the list ;-) >
Don't need to traverse the list at run time, not compile (actually macro-expansion) time. Cheers, -- -alex http://www.ventonegro.org/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe