summaryrefslogtreecommitdiffstats
path: root/tests/perm.tl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/perm.tl')
-rw-r--r--tests/perm.tl11
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)))