codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; base-26 arithmetic (define (digits n . args) (let ((b (if (null? args) 10 (car args)))) (let loop ((n n) (d '())) (if (zero? n) d (loop (quotient n b) (cons (modulo n b) d)))))) (define (undigits ds . args) (let ((b (if (null? args) 10 (car args)))) (let loop ((ds ds) (n 0)) (if (null? ds) n (loop (cdr ds) (+ (* n b) (car ds))))))) (define (number->prashant n) (define (d->c d) (integer->char (+ d 65))) (list->string (map d->c (digits n 26)))) (define (prashant->number p) (define (c->d c) (- (char->integer c) 65)) (undigits (map c->d (string->list p)) 26)) (display (number->prashant 1234567)) (newline) (display (prashant->number "CSGHJ")) (newline) (define (prashant-times x y) (number->prashant (* (prashant->number x) (prashant->number y)))) (display (prashant-times "CSGHJ" "CBA")) (newline)
Private
[
?
]
Run code
Submit