(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