1.2あたり

;;;q1.23
;;;prime-next
(define (prime-next n)
  (if (= n 2)
    3
    (+ n 2)
  )
)

;;;+1していた物をprime-nextに置換えしたprime?内蔵
(define (prime?-clever n)
 (define (prime?-itr n c)
   (cond
        ((= (remainder n c) 0)  #f)
        ((>= c (/ n c))  #t)
        (else (prime?-itr n (prime-next c))))

 )
 (define (prime-next n)
  (if (= n 2)
    3
    (+ n 2)
  )
)
    (prime?-itr n 2)
)
(prime?-clever 7)

;;;prime?をlimitまで回す
(define (prime-dis-clever limit)
  (define (prime-dis-itr targ limit)
    (cond
         ((prime?-clever targ)
          (begin
            (display targ)
            (display " ")
            (prime-dis-itr (+ targ 1) limit)
            ))
         ((= targ limit)
          (begin
          (display "over")
          (newline)
          ))
         (else  (prime-dis-itr (+ targ 1) limit)))
          )
   (prime-dis-itr 2 limit)
  )
(prime-dis-clever 1000)