How is a transducer different from a partially applied function?
In Clojure (map inc) is a transducer, but not in Haskell, because Haskell has to obey currying but an untyped Lisp can break that curry-by-default convention. The type of transducers is instead: type Transducer a b = forall r . (b -> r -> r) -> (a -> r -> r) We say that the … Read more