cl-user> (labels ((mapping (function)
(lambda (rf)
(lambda (acc next)
(funcall rf acc (funcall function next)))))
(transduce (xf build seq)
(funcall build
(reduce (funcall xf build) seq :initial-value (funcall build)))))
(let ((result (transduce (compose (mapping (data-lens:juxt #'identity #'identity))
(mapping (data-lens:over #'parse-integer))
(mapping (data-lens:transform-head #'2*))
(mapping (data-lens:transform-head #'1+)))
(lambda (&optional (acc nil acc-p) (next nil next-p))
(cond (next-p (destructuring-bind (k v) next
(setf (gethash k acc) v)) acc)
(acc-p acc)
(t (make-hash-table))))
'("234" "345" "567" "213"))))
(values result
(alexandria:hash-table-alist result))))
#<HASH-TABLE :TEST EQL :COUNT 4 {10075E2E13}>
((427 . 213) (1135 . 567) (691 . 345) (469 . 234))