refactor(transducers): remove package names

This commit is contained in:
fiddlerwoaroof
2020-12-18 23:58:07 -08:00
parent 4139944479
commit 5bd17dc8e5

View File

@ -103,33 +103,33 @@
(init build))))) (init build)))))
(defun eduction (xf seq) (defun eduction (xf seq)
(lambda (build) (lambda (build)
(data-lens.transducers.internals:unwrap (unwrap
build build
(catch 'done (catch 'done
(data-lens.transducers.internals:reduce-generic seq (reduce-generic seq
(funcall xf (stepper build)) (funcall xf (stepper build))
(init build)))))) (init build))))))
(defmethod data-lens.transducers.internals:init ((it (eql 'hash-table-builder))) (defmethod init ((it (eql 'hash-table-builder)))
(make-hash-table)) (make-hash-table))
(defmethod data-lens.transducers.internals:stepper ((it (eql 'hash-table-builder))) (defmethod stepper ((it (eql 'hash-table-builder)))
(lambda (acc next) (lambda (acc next)
(destructuring-bind (k v) next (destructuring-bind (k v) next
(setf (gethash k acc) v)) (setf (gethash k acc) v))
acc)) acc))
(defmethod data-lens.transducers.internals:init ((it (eql 'vector-builder))) (defmethod init ((it (eql 'vector-builder)))
(make-array 0 :fill-pointer t :adjustable t)) (make-array 0 :fill-pointer t :adjustable t))
(defmethod data-lens.transducers.internals:stepper ((it (eql 'vector-builder))) (defmethod stepper ((it (eql 'vector-builder)))
(lambda (acc next) (lambda (acc next)
(vector-push-extend next acc) (vector-push-extend next acc)
acc)) acc))
(defmethod data-lens.transducers.internals:init ((it (eql 'list-builder))) (defmethod init ((it (eql 'list-builder)))
(declare (optimize (speed 3))) (declare (optimize (speed 3)))
(coerce (vector nil nil) (coerce (vector nil nil)
'(simple-array list (2)))) '(simple-array list (2))))
(defmethod data-lens.transducers.internals:stepper ((it (eql 'list-builder))) (defmethod stepper ((it (eql 'list-builder)))
(lambda (acc a) (lambda (acc a)
(declare (optimize (speed 3)) (declare (optimize (speed 3))
(type (simple-array list (2)) acc)) (type (simple-array list (2)) acc))
@ -141,14 +141,14 @@
(setf (elt acc 0) new (setf (elt acc 0) new
(elt acc 1) new))) (elt acc 1) new)))
acc)) acc))
(defmethod data-lens.transducers.internals:unwrap ((it (eql 'list-builder)) obj) (defmethod unwrap ((it (eql 'list-builder)) obj)
(elt obj 0)) (elt obj 0))
(defclass lazy-sequence () (defclass lazy-sequence ()
((%next :initarg :next :reader next))) ((%next :initarg :next :reader next)))
(defun lazy-sequence (next) (defun lazy-sequence (next)
(make-instance 'lazy-sequence :next next)) (make-instance 'lazy-sequence :next next))
(defmethod data-lens.transducers.internals:reduce-generic ((seq lazy-sequence) (func function) init) (defmethod reduce-generic ((seq lazy-sequence) (func function) init)
(let ((next (next seq))) (let ((next (next seq)))
(loop for next-val = (funcall next) (loop for next-val = (funcall next)
for acc = init then next-acc for acc = init then next-acc
@ -168,7 +168,8 @@
(catting) (catting)
(mapping #'parse-integer) (mapping #'parse-integer)
(filtering (complement #'evenp)) (filtering (complement #'evenp))
(mapping (data-lens:juxt #'identity #'identity)) (mapping (data-lens:juxt #'identity
#'identity))
(mapping (data-lens:transform-head #'2*)) (mapping (data-lens:transform-head #'2*))
(mapping (data-lens:transform-head #'1+)) (mapping (data-lens:transform-head #'1+))
(taking 2)) (taking 2))