mirror of
https://github.com/fiddlerwoaroof/data-lens.git
synced 2025-11-08 18:26:32 +00:00
feat: curried equality
This commit is contained in:
@ -1,5 +1,8 @@
|
|||||||
(asdf:defsystem #:data-lens
|
(asdf:defsystem #:data-lens
|
||||||
:description "Utilities for building data transormations from composable functions, modeled on lenses and transducers"
|
:description #.(format nil "~a ~a ~a"
|
||||||
|
"Utilities for building data transormations from"
|
||||||
|
"composable functions, modeled on lenses and"
|
||||||
|
"transducers")
|
||||||
:author "Edward Langley <el-cl@elangley.org>"
|
:author "Edward Langley <el-cl@elangley.org>"
|
||||||
:license "MIT"
|
:license "MIT"
|
||||||
:depends-on (:cl-ppcre
|
:depends-on (:cl-ppcre
|
||||||
|
|||||||
@ -234,8 +234,9 @@ contain the new value at the location focused by the lens."
|
|||||||
#:compress-runs #:combine-matching-lists #:sorted #:applicable-when
|
#:compress-runs #:combine-matching-lists #:sorted #:applicable-when
|
||||||
#:of-length #:of-min-length #:of-max-length #:transform-head
|
#:of-length #:of-min-length #:of-max-length #:transform-head
|
||||||
#:maximizing #:zipping #:applying #:splice-elt #:transform-elt #:denest
|
#:maximizing #:zipping #:applying #:splice-elt #:transform-elt #:denest
|
||||||
#:op #:defalias #:<> #:<>1
|
#:op #:defalias #:<> #:<>1 #:== #:•
|
||||||
#:•))
|
))
|
||||||
|
|
||||||
(in-package :data-lens)
|
(in-package :data-lens)
|
||||||
|
|
||||||
|
|
||||||
@ -275,6 +276,10 @@ contain the new value at the location focused by the lens."
|
|||||||
when (equal key a-key) do
|
when (equal key a-key) do
|
||||||
(return (car value)))))))
|
(return (car value)))))))
|
||||||
|
|
||||||
|
(defun-ct == (target &key (test 'eql))
|
||||||
|
(lambda (v)
|
||||||
|
(funcall test target v)))
|
||||||
|
|
||||||
(defun-ct deduplicate (&optional (test 'eql))
|
(defun-ct deduplicate (&optional (test 'eql))
|
||||||
(lambda (it)
|
(lambda (it)
|
||||||
(remove-duplicates it :test test)))
|
(remove-duplicates it :test test)))
|
||||||
|
|||||||
Reference in New Issue
Block a user