8 ms·
Uh, there are arrow operators in JS. D3.JS in Action Third Edition exclusively uses arrow operators. (Trust me. I don't know jack about JavaScript, I had to ge
by TheHeasman 1y ago
Uh, there are arrow operators in JS. D3.JS in Action Third Edition exclusively uses arrow operators.
(Trust me. I don't know jack about JavaScript, I had to get through the MDN docs to understand what they were, and once I did, made a whole lot more sense).
- balamatom 1y agoAnd I know more about JavaScript than I'd like to, so don't trust me.
- tomku 1y agoThe feature the person you're replying to is talking about is not arrow functions (`=>`), but what are called "threading macros" in other languages. In Clojure[1], the main one is named `->` and used as a way to thread a value through a series of functions that take it as a first argument, using the return value from the first function as the first argument to the second, and so on. It allows you to compose a series of plain functions to transform a value instead of (stateful) method chaining or nesting functions. JS does not have a straightforward equivalent. The old and deprecated `with` keyword might seem similar but it's only a surface resemblance as it does not perform the return-value threading that makes the above pattern useful, it was meant for methods that mutate object state. There's a TC39 proposal[2] to add a pipe operator that would accomplish a similar thing to threading macros via an infix operator but it's still a draft. [1]: https://clojure.org/guides/threading_macros https://clojure.org/guides/threading_macros [2]: https://github.com/tc39/proposal-pipeline-operator https://github.com/tc39/proposal-pipeline-operator
- TheHeasman 1y agoI stand corrected. Thanks for pointing that out. Learned something new.