Plaster
New
List
Login
common-lisp
default
shinmera
2018.01.18 11:44:01
(defmacro switch (form &body clauses) (let ((end (gensym "END"))) `(block NIL (tagbody (case ,form ,@(loop for clause in clauses collect `(,(first clause) (go ,(first clause)))) (T (go ,end))) ,@(loop for clause in clauses append clause) ,end))))
Raw
Annotate
Repaste