This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define (quotient-down n divider) | |
(let loop ((n n)(acc '())) | |
(if (zero? n) | |
acc | |
(loop (quotient n divider)(cons n acc))))) | |
(define (number-list->number lis) | |
(string->number (string-join (map x->string lis) ""))) | |
(define (dec->bin n) | |
(number-list->number | |
(map (lambda (e) | |
(if (zero? (remainder e 2)) 0 1)) | |
(quotient-down n 2)))) | |
(dec->bin 172) | |
(number->string 172 2) | |
(dec->bin 60) | |
(number->string 60 2) | |
(dec->bin 128) | |
(number->string 128 2) | |
(dec->bin 100) | |
(number->string 100 2) | |
(define (number->number-list n) | |
(map (compose string->number string) | |
(string->list (number->string n)))) | |
(use srfi-1) | |
(define (reverse-index-expt ls) | |
(unfold null? | |
(lambda (s) | |
(expt 2 (- (length s) 1))) | |
cdr ls)) | |
(define (bin->dec n) | |
(let1 bls (number->number-list n) | |
(apply + (filter-map (lambda (b e) | |
(and (= b 1) e)) | |
bls | |
(reverse-index-expt bls))))) | |
(bin->dec 10011001) | |
(bin->dec 1111) | |
(bin->dec 1101) | |
(bin->dec 1110) |
0 件のコメント:
コメントを投稿