Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (define (string->char-list text)
- (string->list text))
- (define (char-list->string clist)
- (list->string clist))
- (define (char-list->ascii-list char-list)
- (if (eq? char-list '())
- '()
- (cons (char->integer (car char-list))
- (char-list->ascii-list (cdr char-list)))))
- (define (ascii-list->char-list ascii-list)
- (if (eq? ascii-list '())
- '()
- (cons (integer->char (car ascii-list))
- (ascii-list->char-list (cdr ascii-list)))))
- (define (encode text i)
- (let ((ascii-list (char-list->ascii-list
- (string->char-list
- text))))
- (define (encode-iter ascii)
- (if (eq? ascii '())
- '()
- (cons (round (modulo (+ (car ascii) i) 26))
- (encode-iter (cdr ascii)))))
- (char-list->string
- (ascii-list->char-list (encode-iter ascii-list)))))
- (define (decode text i)
- (let ((ascii-list (char-list->ascii-list
- (string->char-list
- text))))
- (define (decode-iter ascii)
- (if (eq? ascii '())
- '()
- (cons (- (car ascii) i)
- (decode-iter (cdr ascii)))))
- (char-list->string
- (ascii-list->char-list
- (decode-iter ascii-list)))))
- (define hello "helloz")
- (define encoded (encode hello 2))
- (decode encoded 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement