summaryrefslogtreecommitdiff
path: root/cl/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'cl/src/utils')
-rw-r--r--cl/src/utils/package.lisp3
-rw-r--r--cl/src/utils/table.lisp11
2 files changed, 13 insertions, 1 deletions
diff --git a/cl/src/utils/package.lisp b/cl/src/utils/package.lisp
index 0436a94..bdd5589 100644
--- a/cl/src/utils/package.lisp
+++ b/cl/src/utils/package.lisp
@@ -1,4 +1,5 @@
(in-package :cl-user)
(defpackage lizfcm.utils
(:use :cl)
- (:export :within-range-p))
+ (:export :within-range-p
+ :table))
diff --git a/cl/src/utils/table.lisp b/cl/src/utils/table.lisp
new file mode 100644
index 0000000..e96f37b
--- /dev/null
+++ b/cl/src/utils/table.lisp
@@ -0,0 +1,11 @@
+(in-package :lizfcm.utils)
+
+(defmacro table ((&key headers domain-order domain-values) &body body)
+ `(cons
+ ,headers
+ (mapcar (lambda (tuple)
+ (destructuring-bind ,domain-order tuple
+ (append tuple
+ (list
+ ,@body))))
+ ,domain-values)))