The let Expression

Solution: use Scheme's let expression:
   (define first-perfect-after
     (lambda (n)
       (let ((next (+ n 1)))
         (if (perfect? next)
             next
             (first-perfect-after next)))))
The two sets of parentheses around next and (+ n 1) are because let allows more than one name to be introduced:
       (let ((a 2)
             (b 3))
         (+ a b))   =>  5