Instructor: Stefan Mitsch
hello (press Control-C to quit)
while (1) printf("hello\n");
(let loop ()
(display "hello\n")
(loop))
n
(let loop ([n 0])
(display (string-append "hello " (number->string n) "\n"))
(loop (+ n 1)))
loop is not significant
(define (printHello m)
(display (string-append "hello " (number->string m) "\n"))
(printHello (+ m 1)))
(printHello 0)
set! to assign
(define n 0)
(let loop ()
(display (string-append "hello " (number->string n) "\n"))
(set! n (+ n 1))
(loop))
let form; also set!
(let ([m 0])
(let loop ()
(display (string-append "hello " (number->string m) "\n"))
(set! m (+ m 1))
(loop)))
int factorial (int n) {
int result = 1;
while (n > 1) {
result = result * n;
n = n - 1;
}
return result;
}
(define (factorial n)
(let ([result 1])
(let loop ()
(if (> n 1)
(begin
(set! result (* result n))
(set! n (- n 1))
(loop))
result))))
int factorial (int n) {
int result = 1;
while (n > 1) {
result = result * n;
n = n - 1;
}
return result;
}
(define (factorial n)
(let loop ([result 1] [n n])
(if (> n 1)
(loop (* result n) (- n 1))
result)))