feat: add default return value to applicable-when

This commit is contained in:
Edward Langley
2023-07-15 10:18:21 -07:00
parent b7f020d352
commit 902adc1fe0
2 changed files with 13 additions and 5 deletions

View File

@ -115,11 +115,16 @@
(<= (length it) (<= (length it)
len))) len)))
(defun applicable-when (fun test) (defun applicable-when (fun test &optional (default nil default-p))
(if default-p
(lambda (it) (lambda (it)
(if (funcall test it) (if (funcall test it)
(funcall fun it) (funcall fun it)
it))) default))
(lambda (it)
(if (funcall test it)
(funcall fun it)
it))))
(defmacro conj (&rest fns) (defmacro conj (&rest fns)
(let ((dat (gensym "dat"))) (let ((dat (gensym "dat")))

View File

@ -84,6 +84,9 @@
(5am:is (equal 1 (5am:is (equal 1
(funcall (data-lens:applicable-when '1+ (constantly nil)) (funcall (data-lens:applicable-when '1+ (constantly nil))
1))) 1)))
(5am:is (equal "hi"
(funcall (data-lens:applicable-when '1+ (constantly nil) "hi")
1)))
(5am:is (equal 2 (5am:is (equal 2
(funcall (data-lens:applicable-when '1+ (constantly t)) (funcall (data-lens:applicable-when '1+ (constantly t))
1)))) 1))))