mirror of
https://github.com/fiddlerwoaroof/data-lens.git
synced 2025-11-08 10:16:32 +00:00
feat: add default return value to applicable-when
This commit is contained in:
15
lens.lisp
15
lens.lisp
@ -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")))
|
||||||
|
|||||||
@ -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))))
|
||||||
|
|||||||
Reference in New Issue
Block a user