4 ms·
It improves the performance by fusing some of the operations doing them in one pass instead of multiple passes, and it does so generically - operations are comp
by birdsbolt 11y ago
It improves the performance by fusing some of the operations doing them in one pass instead of multiple passes, and it does so generically - operations are composed regardless of the source, and the implementation isn't looking at the type of the source at all.
I believe one of the arguments was also that these couldn't be written in statically typed languages. Although, I do not know if this turned out to be true.
- coolsunglasses 11y ago>I believe one of the arguments was also that these couldn't be written in statically typed languages. Although, I do not know if this turned out to be true. It's not true, they were just abstrusely defined and there's some weirdness around the implicit effects that you can choose to either ignore or incorporate into the equivalent. Fusion is one of the main things Haskell is known for and an API that gets close enough to what one would use transducers for is `Control.Lens.Fold`. Others have made more faithful attempts at making it explicit, such as in this post: http://jspha.com/posts/typing-transducers/ http://jspha.com/posts/typing-transducers/
- puredanger 11y agoRe the last sentence, that is not true, nor was it a claim.
- birdsbolt 11y agoI think I saw a talk, or a statement somewhere, made by Rich Hickey - https://news.ycombinator.com/item?id=8342718 https://news.ycombinator.com/item?id=8342718 . I believe it was in this talk. Not that I was being negative about it.
- puredanger 11y agoRich didn't claim you couldn't implement it. He just claimed that some aspects of transducers are difficult to represent as types. Or at least, that's how I took it.