mirror of
https://github.com/fiddlerwoaroof/data-lens.git
synced 2025-11-08 10:16:32 +00:00
chore: don't depend on serapeum, other cleanup
This commit is contained in:
@ -5,8 +5,7 @@
|
|||||||
:license "Apache v2"
|
:license "Apache v2"
|
||||||
:depends-on (:data-lens
|
:depends-on (:data-lens
|
||||||
:data-lens/transducers
|
:data-lens/transducers
|
||||||
:fset
|
:fset)
|
||||||
:named-readtables)
|
|
||||||
:serial t
|
:serial t
|
||||||
:in-order-to ((test-op (test-op :data-lens/test)))
|
:in-order-to ((test-op (test-op :data-lens/test)))
|
||||||
:components ((:file "data-lens-fset")))
|
:components ((:file "data-lens-fset")))
|
||||||
|
|||||||
@ -94,7 +94,7 @@
|
|||||||
(defmethod data-lens.transducers.internals:stepper ((bag (eql 'fset-bag-builder)))
|
(defmethod data-lens.transducers.internals:stepper ((bag (eql 'fset-bag-builder)))
|
||||||
(data-lens.transducers:transducer-lambda
|
(data-lens.transducers:transducer-lambda
|
||||||
((acc next)
|
((acc next)
|
||||||
(:printv (fset:with acc next)))))
|
(fset:with acc next))))
|
||||||
(defmethod data-lens:functionalize ((it fset:bag))
|
(defmethod data-lens:functionalize ((it fset:bag))
|
||||||
(lambda (key)
|
(lambda (key)
|
||||||
(fset:multiplicity it key)))
|
(fset:multiplicity it key)))
|
||||||
|
|||||||
@ -23,8 +23,7 @@
|
|||||||
:license "Apache v2"
|
:license "Apache v2"
|
||||||
:depends-on (:data-lens
|
:depends-on (:data-lens
|
||||||
:fiveam
|
:fiveam
|
||||||
:string-case
|
:string-case)
|
||||||
:serapeum)
|
|
||||||
:serial t
|
:serial t
|
||||||
:perform (test-op (o c)
|
:perform (test-op (o c)
|
||||||
(unless (symbol-call :fiveam '#:run! :data-lens.lens)
|
(unless (symbol-call :fiveam '#:run! :data-lens.lens)
|
||||||
@ -38,8 +37,7 @@
|
|||||||
:author "Edward Langley <el-cl@elangley.org>"
|
:author "Edward Langley <el-cl@elangley.org>"
|
||||||
:license "Apache v2"
|
:license "Apache v2"
|
||||||
:depends-on (:data-lens
|
:depends-on (:data-lens
|
||||||
:alexandria
|
:alexandria)
|
||||||
:serapeum)
|
|
||||||
:serial t
|
:serial t
|
||||||
:in-order-to ((test-op (test-op :data-lens/transducers/test)))
|
:in-order-to ((test-op (test-op :data-lens/transducers/test)))
|
||||||
:components ((:file "package")
|
:components ((:file "package")
|
||||||
|
|||||||
@ -29,6 +29,11 @@
|
|||||||
(lambda ()
|
(lambda ()
|
||||||
v))))
|
v))))
|
||||||
|
|
||||||
|
(defun unsplice (form)
|
||||||
|
(if form
|
||||||
|
(list form)
|
||||||
|
nil))
|
||||||
|
|
||||||
(defun iota (&key (start 0) (step 1) count)
|
(defun iota (&key (start 0) (step 1) count)
|
||||||
(lazy-sequence
|
(lazy-sequence
|
||||||
(funcall
|
(funcall
|
||||||
@ -36,14 +41,14 @@
|
|||||||
`(lambda ()
|
`(lambda ()
|
||||||
(declare (optimize (speed 3) (debug 1) (safety 1)))
|
(declare (optimize (speed 3) (debug 1) (safety 1)))
|
||||||
(let ((init ,start)
|
(let ((init ,start)
|
||||||
,@(serapeum:unsplice (when count
|
,@(unsplice (when count
|
||||||
'(iterations 0))))
|
'(iterations 0))))
|
||||||
(declare (type (integer ,start
|
(declare (type (integer ,start
|
||||||
,(if count
|
,(if count
|
||||||
(+ start (* count step))
|
(+ start (* count step))
|
||||||
'*))
|
'*))
|
||||||
init)
|
init)
|
||||||
,@(serapeum:unsplice
|
,@(unsplice
|
||||||
(when count
|
(when count
|
||||||
`(type (integer 0 ,count) iterations))))
|
`(type (integer 0 ,count) iterations))))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
@ -53,6 +58,6 @@
|
|||||||
'(progn))
|
'(progn))
|
||||||
(prog1 init
|
(prog1 init
|
||||||
(incf init ,step)
|
(incf init ,step)
|
||||||
,@(serapeum:unsplice
|
,@(unsplice
|
||||||
(when count
|
(when count
|
||||||
'(incf iterations))))))))))))
|
'(incf iterations))))))))))))
|
||||||
|
|||||||
14
t/lens.lisp
14
t/lens.lisp
@ -183,9 +183,19 @@
|
|||||||
(acons "c" (make-instance 'my-map) ())
|
(acons "c" (make-instance 'my-map) ())
|
||||||
:test 'equal))))))))
|
:test 'equal))))))))
|
||||||
|
|
||||||
|
(defun eqq (a b)
|
||||||
|
(typecase a
|
||||||
|
(string (equal a b))
|
||||||
|
(vector (and (vectorp b)
|
||||||
|
(= (length a) (length b))
|
||||||
|
(every 'eqq a b)))
|
||||||
|
(cons (and (consp b)
|
||||||
|
(eqq (car a) (car b))
|
||||||
|
(eqq (cdr a) (cdr b))))
|
||||||
|
(t (eql a b))))
|
||||||
|
|
||||||
(5am:def-test regex-match (:suite :data-lens.lens)
|
(5am:def-test regex-match (:suite :data-lens.lens)
|
||||||
(5am:is (serapeum:seq=
|
(5am:is (eqq (list "acb" #("c"))
|
||||||
(list "acb" #("c"))
|
|
||||||
(multiple-value-list
|
(multiple-value-list
|
||||||
(funcall (data-lens:regex-match "a(.)b")
|
(funcall (data-lens:regex-match "a(.)b")
|
||||||
"<acb>")))))
|
"<acb>")))))
|
||||||
|
|||||||
@ -182,7 +182,8 @@
|
|||||||
(data-lens.transducers:catting)
|
(data-lens.transducers:catting)
|
||||||
(data-lens.transducers:mapping #'parse-integer)
|
(data-lens.transducers:mapping #'parse-integer)
|
||||||
(data-lens.transducers:filtering (complement #'evenp))
|
(data-lens.transducers:filtering (complement #'evenp))
|
||||||
(data-lens.transducers:splitting (serapeum:op (* 2 _)) #'identity)
|
(data-lens.transducers:splitting (lambda (_) (* 2 _))
|
||||||
|
#'identity)
|
||||||
(data-lens.transducers:mapping (data-lens:transform-head #'1+))
|
(data-lens.transducers:mapping (data-lens:transform-head #'1+))
|
||||||
(data-lens.transducers:taking 3))
|
(data-lens.transducers:taking 3))
|
||||||
'data-lens.transducers:hash-table-builder
|
'data-lens.transducers:hash-table-builder
|
||||||
|
|||||||
Reference in New Issue
Block a user