From 2622a909e9277ef1b3eaa193bd53ac5cab152a73 Mon Sep 17 00:00:00 2001 From: Colin Okay Date: Wed, 15 Jul 2020 10:31:57 -0500 Subject: added scrambler example --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 86c9c49..4f455f7 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,36 @@ example apears at the end of the document, following the tutorial. ``` +### A Silly Scrambler + +``` lisp + +;; see examples.lisp for defuns of PAD and CHUNK + +> (defun scramble (n str) + (assert (< n (length str))) + (let ((str (pad str (* n (ceiling (/ (length str) n)))))) + (concatenate 'string + (apply #'nconc + (mapcar #'collect + (disperse! n (seq str))))))) + +> (defun descramble (n str) + (concatenate 'string + (collect + (apply #'intersperse! + (mapcar #'seq (chunk n str)))))) + + +> (scramble 3 "this will be scrabled, ya dig?") + +"tsi rbdyd?h lbsal,ai iwlecme g " + +> (descramble 3 *) +"this will be scrambled, ya dig? " + +``` + ## Tutorial GTWIWTG is a tiny library for creating and using generators. -- cgit v1.2.3