Mikael Brockman wrote:
> In Scheme, sum would be:
> 
>  (define (sum xs)
>    (if (null? xs)
>       0
>      (+ (car xs) (sum (cdr xs)))))

Ruby doesn't optimize this tail recursion, but Scheme does. That's one 
way Scheme could be said to be more "functional".