Define type plist

This commit is contained in:
Marcus Kammer 2023-09-18 16:45:23 +02:00
parent ffee1dda67
commit 4832959fe1

View file

@ -120,6 +120,14 @@ Example:
`((process-choice ,group ,choice))))
(:hr :class (spacing :property "m" :side "y" :size 4)))))
(defun plist-p (lst)
(and (some #'keywordp lst)
(some #'stringp lst)))
(deftype plist ()
'(and list (satisfies plist-p)))
(declaim (ftype (function (plist) list) split-plist-by-keyword))
(defun split-plist-by-keyword (plist)
"Splits a property list (PLIST) into a list of smaller property lists, each starting with a keyword.