codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; loopy loops (define (range . args) (case (length args) ((1) (range 0 (car args) (if (negative? (car args)) -1 1))) ((2) (range (car args) (cadr args) (if (< (car args) (cadr args)) 1 -1))) ((3) (let ((le? (if (negative? (caddr args)) >= <=))) (let loop ((x(car args)) (xs '())) (if (le? (cadr args) x) (reverse xs) (loop (+ x (caddr args)) (cons x xs)))))) (else (error 'range "unrecognized arguments")))) (define (f n) (range 1 (+ n 1))) (display (f 10)) (newline) (display "---") (newline) (define (f n) (for-each (lambda (x) (display x) (newline)) (range 1 (+ n 1)))) (f 10) (display "---") (newline) (define (f n) (and (< 1 n) (f (- n 1))) (display n) (newline)) (f 10) (display "---") (newline) (define (f n) (let f ((n n) (i 1)) (display i) (newline) (and (< 1 n) (f (- n 1) (+ i 1))))) (display (f 10)) (newline) (display "---") (newline) (define (f n) (define (g i) (display i) (newline) (and (< i n) (g (+ i 1)))) (if (g 1) #f)) (f 10) (display "---") (newline) (define (f n) (define (g n i) (let ((j (/ n))) (display i) (newline) (g (- n 1) (+ i 1)))) (g n 1)) (f 10)
Private
[
?
]
Run code
Submit