codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; binary reflected gray code (define (ash int cnt) (if (negative? cnt) (let ((n (expt 2 (- cnt)))) (if (negative? int) (+ -1 (quotient (+ 1 int) n)) (quotient int n))) (* (expt 2 cnt) int))) (define (gray n) (define (add x) (lambda (y) (+ x y))) (let loop ((n n) (g 1) (gs (list 0))) (if (zero? n) gs (loop (- n 1) (+ g g) (append gs (map (add g) (reverse gs))))))) (display (gray 0)) (newline) (display (gray 1)) (newline) (display (gray 2)) (newline) (display (gray 3)) (newline) (display (gray 4)) (newline) (display (gray 5)) (newline) (define (nth-gray n) (bitwise-xor n (ash n -1))) (display (nth-gray 0)) (newline) (display (nth-gray 1)) (newline) (display (nth-gray 2)) (newline) (display (nth-gray 3)) (newline) (display (nth-gray 4)) (newline) (display (nth-gray 5)) (newline) (display (nth-gray 6)) (newline) (display (nth-gray 7)) (newline) (display (nth-gray 8)) (newline) (display (nth-gray 9)) (newline)
Private
[
?
]
Run code
Submit