Earlier quoted context omitted.
We just did exactly the same thing in the Wolfram Language, for similar reasons (we called these things "operator forms" rather than "transducers") [0] One major side effect has been to mitigate the kinds of heavy nesting you see in functional languages like WL and Clojure. Personally I think the resulting code resembles the phrase structure of English much more closely. It's a huge readability win. The original moti…
I'm not seeing anything that looks like a reducing function transformer there. That all looks like variants of ordinary function composition, currying and partial application. Is there someplace that shows 'operator forms' acting as functions with this signature: (x->a->x)->(x->a->x)?
even_selector = Select[EvenQ]
incrementor = Map[Inc]
decrementor = Map[Dec]
even_incremented_selector = incrementor * even_selector (????)
odd_selector = even_incremented_selector * decrementor
even_selector[{1,2,3,4,5,6,7}] => {2,4,6}
even_incremented_selector[{1,2,3,4,5,6,7}] => {2,4,6,8}
odd_selector[{1,2,3,4,5,6,7}] => {1,3,5,7}
However I'm not entirely sure I've understood things correctly, I just stared at it for a while and need to get back to work...
(edit: HN does _not_ like formatting)