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 (+ (car ascii) i)
- (cons (+ (modulo (+ (- (car ascii) 65) i) 26) 65)
- (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 (+ (modulo (- (- (car ascii) 65) i) 26) 65)
- (decode-iter (cdr ascii)))))
- (char-list->string
- (ascii-list->char-list
- (decode-iter ascii-list)))))
- (define hello "HELLO")
- (define encoded (encode hello 1))
- (decode encoded 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement