diff --git a/data-lens+fset.asd b/data-lens+fset.asd index fcdaeda..b5ad224 100644 --- a/data-lens+fset.asd +++ b/data-lens+fset.asd @@ -5,8 +5,7 @@ :license "Apache v2" :depends-on (:data-lens :data-lens/transducers - :fset - :named-readtables) + :fset) :serial t :in-order-to ((test-op (test-op :data-lens/test))) :components ((:file "data-lens-fset"))) diff --git a/data-lens-fset.lisp b/data-lens-fset.lisp index 88ce727..7465e49 100644 --- a/data-lens-fset.lisp +++ b/data-lens-fset.lisp @@ -94,7 +94,7 @@ (defmethod data-lens.transducers.internals:stepper ((bag (eql 'fset-bag-builder))) (data-lens.transducers:transducer-lambda ((acc next) - (:printv (fset:with acc next))))) + (fset:with acc next)))) (defmethod data-lens:functionalize ((it fset:bag)) (lambda (key) (fset:multiplicity it key))) diff --git a/data-lens.asd b/data-lens.asd index 3422c0b..eff9122 100644 --- a/data-lens.asd +++ b/data-lens.asd @@ -23,8 +23,7 @@ :license "Apache v2" :depends-on (:data-lens :fiveam - :string-case - :serapeum) + :string-case) :serial t :perform (test-op (o c) (unless (symbol-call :fiveam '#:run! :data-lens.lens) @@ -38,8 +37,7 @@ :author "Edward Langley " :license "Apache v2" :depends-on (:data-lens - :alexandria - :serapeum) + :alexandria) :serial t :in-order-to ((test-op (test-op :data-lens/transducers/test))) :components ((:file "package") diff --git a/lazy-sequence.lisp b/lazy-sequence.lisp index bb49cc2..adcf311 100644 --- a/lazy-sequence.lisp +++ b/lazy-sequence.lisp @@ -29,6 +29,11 @@ (lambda () v)))) +(defun unsplice (form) + (if form + (list form) + nil)) + (defun iota (&key (start 0) (step 1) count) (lazy-sequence (funcall @@ -36,14 +41,14 @@ `(lambda () (declare (optimize (speed 3) (debug 1) (safety 1))) (let ((init ,start) - ,@(serapeum:unsplice (when count - '(iterations 0)))) + ,@(unsplice (when count + '(iterations 0)))) (declare (type (integer ,start ,(if count (+ start (* count step)) '*)) init) - ,@(serapeum:unsplice + ,@(unsplice (when count `(type (integer 0 ,count) iterations)))) (lambda () @@ -53,6 +58,6 @@ '(progn)) (prog1 init (incf init ,step) - ,@(serapeum:unsplice + ,@(unsplice (when count '(incf iterations)))))))))))) diff --git a/t/lens.lisp b/t/lens.lisp index a0815ef..f381a21 100644 --- a/t/lens.lisp +++ b/t/lens.lisp @@ -183,12 +183,22 @@ (acons "c" (make-instance 'my-map) ()) :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:is (serapeum:seq= - (list "acb" #("c")) - (multiple-value-list - (funcall (data-lens:regex-match "a(.)b") - ""))))) + (5am:is (eqq (list "acb" #("c")) + (multiple-value-list + (funcall (data-lens:regex-match "a(.)b") + ""))))) (5am:def-test include (:suite :data-lens.lens) (5am:is (equal '(1 3 5) diff --git a/t/transducers.lisp b/t/transducers.lisp index 310ddd2..abb6bf3 100644 --- a/t/transducers.lisp +++ b/t/transducers.lisp @@ -1,6 +1,6 @@ (defpackage :data-lens.t.transducers - (:use :cl ) - (:export )) + (:use :cl) + (:export)) (in-package :data-lens.t.transducers) (5am:def-suite :data-lens.transducers) @@ -182,7 +182,8 @@ (data-lens.transducers:catting) (data-lens.transducers:mapping #'parse-integer) (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:taking 3)) 'data-lens.transducers:hash-table-builder