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))
(lambda (it) (if default-p
(if (funcall test it) (lambda (it)
(funcall fun it) (if (funcall test it)
it))) (funcall fun 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))))