Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
|
|
@ -0,0 +1,27 @@
|
|||
(defconstant +lower+ (coerce "abcdefghijklmnopqrstuvwxyz" 'list))
|
||||
|
||||
(defun move-to-front (x xs)
|
||||
(cons x (remove x xs)))
|
||||
|
||||
(defun enc (text table)
|
||||
(map 'list
|
||||
(lambda (c)
|
||||
(let ((idx (position c table)))
|
||||
(setf table (move-to-front c table))
|
||||
idx))
|
||||
text))
|
||||
|
||||
(defun dec (indices table)
|
||||
(coerce (mapcar (lambda (idx)
|
||||
(let ((c (nth idx table)))
|
||||
(setf table (move-to-front c table))
|
||||
c))
|
||||
indices)
|
||||
'string))
|
||||
|
||||
(loop for word in '("broood" "bananaaa" "hiphophiphop")
|
||||
do (let* ((encoded (enc word +lower+))
|
||||
(decoded (dec encoded +lower+)))
|
||||
(assert (string= word decoded))
|
||||
(format T "~s encodes to ~a which decodes back to ~s.~%"
|
||||
word encoded decoded)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue