Scheme is a functional language - it's based on lambda calculus. So It's a little strange for someone who grew up with BASIC and DM and C, but interesting.
There isn't really iteration, as such - you do it via recursion:
(define factorial n
(define fact_r m r
(if (< n 2)
r
(fact_r (- m 1) (* r m))
)
)
(fact_r n 1)
)
(That might not be actual valid Scheme - it's been a while since I've actually written code in it and compiled it, etc. etc. But the basic algorithm is correct)