diff --git a/transducers.lisp b/transducers.lisp index cf75be4..5a32818 100644 --- a/transducers.lisp +++ b/transducers.lisp @@ -131,7 +131,10 @@ ((it) (funcall rf it)))))) (defun transduce (xf build seq) - (let ((transducer (funcall xf (stepper build)))) + (let* ((xf (etypecase xf + (list (apply 'alexandria:compose xf)) + ((or function symbol) xf))) + (transducer (funcall xf (stepper build)))) (unwrap build (funcall transducer (catch 'done