(define (f op . args) (if (> (length args) 0) (begin (display (cons op args)) (newline) (if (> (length args) 2) (f op (car args) (cadr args)))) (begin (display "done") (newline)))) (f 'exp 1 2 3) ;; Output: (exp 1 2 3) ;; Output: (exp 1 2)