defvariant
2014-07-13
Variants in Common Lisp.
Upstream URL
Author
Frederic Peschanski (format nil "<frederic~Apeschanski~Awork~Agmail~Acom>" "." "." "@" ".")
License
BSD 2-Clause. See LICENSE.
defvariant
Variants for Common Lisp (for ML nostalgics ?)
(defpackage :try-defvariant (:use :cl :defvariant)) (in-package :try-defvariant) (defvariant btree (leaf) (node val left right))
=> MATCH-BTREE
(let ((my-tree (make-btree-node :val 42 :left (make-btree-leaf) :right (make-btree-leaf)))) (match-btree my-tree (leaf _ "leaf !") (node (v _ _) v)))
=> 42
See. defvariant.md
for the whole story.