codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; godel numbering (define primes (list 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97)) (define (godel str) (let loop ((cs (string->list str)) (ps primes) (g 1)) (if (null? cs) g (loop (cdr cs) (cdr ps) (* g (expt (car ps) (- (char->integer (char-upcase (car cs))) 64))))))) (display (godel "praxis")) (newline) (define (ungodel num) (let loop ((cs (list)) (ps primes) (g num) (cnt 64)) (cond ((= g 1) (list->string (reverse (cons (integer->char cnt) cs)))) ((zero? (modulo g (car ps))) (loop cs ps (/ g (car ps)) (+ cnt 1))) (else (loop (cons (integer->char cnt) cs) (cdr ps) g 64))))) (display (ungodel (godel "praxis"))) (newline)
Private
[
?
]
Run code
Submit