tfeatures.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP
(HTM) git clone git://bitreich.org/clic/ git://hg6vgqziawt5s4dj.onion/clic/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) LICENSE
---
tfeatures.lisp (717B)
---
1 (in-package :alexandria)
2
3 (defun featurep (feature-expression)
4 "Returns T if the argument matches the state of the *FEATURES*
5 list and NIL if it does not. FEATURE-EXPRESSION can be any atom
6 or list acceptable to the reader macros #+ and #-."
7 (etypecase feature-expression
8 (symbol (not (null (member feature-expression *features*))))
9 (cons (check-type (first feature-expression) symbol)
10 (eswitch ((first feature-expression) :test 'string=)
11 (:and (every #'featurep (rest feature-expression)))
12 (:or (some #'featurep (rest feature-expression)))
13 (:not (assert (= 2 (length feature-expression)))
14 (not (featurep (second feature-expression))))))))