(define-syntax postfixed (syntax-rules () [(_ (operands ... operator)) (operator (postfixed operands) ...)] [(_ atom) atom])) ;; all of these return 5 (postfixed 5) (postfixed (2 3 +)) (postfixed (2 (1 2 +) +)) (postfixed ((1 1 +) (1 2 +) +))