You have a couple of parenthesis problems, this fixes it:
(define (search-for-primes a n)
(define (sfp-iter a n counter)
(cond ((and (prime? a) (= counter n))
(newline) (display "end"))
((prime? a)
(newline)
(display a)
(sfp-iter (+ a 1) n (+ counter 1)))
(else (sfp-iter (+ a 1) n counter))))
(sfp-iter a n 0))
In the first and second conditions of the cond
, you were incorrectly surrounding the code with ()
. That's unnecessary, in a cond
clause all the expressions that come after the condition are implicitly surrounded by a (begin ...)
form, so there's no need to group them together.