chore: don't depend on serapeum, other cleanup

This commit is contained in:
Edward Langley
2024-08-12 00:42:16 -07:00
parent d6aef4f662
commit 35ac09aff4
6 changed files with 32 additions and 19 deletions

View File

@ -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")))

View File

@ -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)))

View File

@ -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")

View File

@ -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))))))))))))

View File

@ -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>")))))

View File

@ -1,6 +1,6 @@
(defpackage :data-lens.t.transducers (defpackage :data-lens.t.transducers
(:use :cl ) (:use :cl)
(:export )) (:export))
(in-package :data-lens.t.transducers) (in-package :data-lens.t.transducers)
(5am:def-suite :data-lens.transducers) (5am:def-suite :data-lens.transducers)
@ -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