#lang scheme
(require mzlib/trace)
(define intervalo
  (lambda (a b)
    (if (> a b)
        '()
        (cons a
              (intervalo (add1 a) b))) ))
(trace intervalo)

(define si
  (lambda (test verdad falso)
    (list
     'if 
     test
     (cons 'begin verdad)
     (cons 'begin falso)) ))

(define suma-todox
  (lambda (lista)
    (letrec
        ((aux-suma-todos
          (lambda (lista n)
            (if (null? lista)
                n
                (aux-suma-todos 
                 (cdr lista) (+ n (car lista))) )))
         )
      (aux-suma-todos lista 0) )))
     