diff options
Diffstat (limited to 'tests/perm.tl')
-rw-r--r-- | tests/perm.tl | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/perm.tl b/tests/perm.tl new file mode 100644 index 00000000..d9df0b85 --- /dev/null +++ b/tests/perm.tl @@ -0,0 +1,11 @@ +(defun enc-perm (p) + (let ((d (digits (logior 4096 p) 2))) + (mapcar (do if (zerop @2) #\- @1) "sgtrwxrwxrwx" (rest d)))) + +(defun dec-perm (s) + (let ((d (mapcar (do cond + ((eql @1 @2) 1) + ((eql #\- @2) 0) + (t (error `decode-perm: invalid input @s`))) + "sgtrwxrwxrwx" s))) + (poly 2 d))) |