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

Reply via email to