You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 26, 2022. It is now read-only.
To leave a particular example, how would this interoperate with stateful primitive-like operators like distinct or scan? I know it's not directly related to this proposal, but if we go with my lifted pipeline strawman as an extension of this, how would it interop with them? (The current syntax offers no convenient escape hatch to break the "smart" default, instead requiring a new name to be assigned.)
As a parenthetical follow-up to tc39/proposal-pipeline-operator#106 (comment), I am very interested in your own proposal. I think there’s a lot of potential there. I’m still chewing over it as I work out the formal specifications of the remaining additional features, because it’s a big problem. I’ll reply in your new issue #24 when I can.
As long as we’re talking about useful abstractions from Haskell and category theory, I think it’s important to choose the right level of abstraction here for nested/plural/etc. data.
I need to think about it more, but…have you considered other abstractions, other than functor mapping, such as applicative application or monadic binding—or, as I am currently most interested in exploring, eventually extending smart pipelines into something like the proc notation of arrows or maybe Kleisli composition.
…I’m interested in extending smart pipelines to support abstractions more powerful than functor mapping—like static arrows or Kleisli arrows and Kleisli composition—especially for the purpose of tersely using lenses or Clojure-style transducers. To use your uniq example, this, in turn, might enable defining a uniq transducer that could work on reducible/plural data of any type—without unnecessary intermediate allocation, when combined with other transducers such as those for mapping, filtering, partitioning, taking/leaving/slicing, and so on. But right now I’m dealing with implementing and specifying smart pipelines themselves, so I haven’t been able to really work out how this would work in JavaScript.
Also leaving here for other readers: Related on the Clojure side, Specter. (Frequently isomorphically on the Haskell side, lenses, traversables, foldables, as mentioned above.)
I’ll follow up after I finish #17 and #18#25. Thanks again for the outreach; your proposal is very interesting.
Thanks for the issue; sorry about the delayed reply.
After talking more with Tab Atkins and Daniel Ehrenberg, we’ve decided to archive this proposal in favor of a simpler Hack-pipes proposal, which is a subset of this proposal.
Feel free to open a new issue in the new repository if you think it still applies.
To leave a particular example, how would this interoperate with stateful primitive-like operators like
distinct
orscan
? I know it's not directly related to this proposal, but if we go with my lifted pipeline strawman as an extension of this, how would it interop with them? (The current syntax offers no convenient escape hatch to break the "smart" default, instead requiring a new name to be assigned.)The text was updated successfully, but these errors were encountered: