I'd far rather save that for an alternative switch expression with pattern matching.
const slowSum = (lst: {x: number}[]) =>
switch(list) {
[{x}, ...y] -> x + slowSum(y) //not tail recursive
[{x}, {x: y}] -> x + y //alias second x to y
[{x}] -> x //handle length 1
[] -> 0 //handle length 0
}Having been watching, and a couple times playing with Rust... would definitely like a similar pattern matching system in JS. I still feel the C# syntax for this feels a bit alien `varname switch {...}`.
As an F# developer who also does some JS and Java this would confuse the hell out of me! |> is the best operator
Re:Pipe Operator (|>) For JavaScript
by grumpyprole on Friday January 20, 2023 @04:10PM
(#34459980)
There's no need. The % placeholder can be used for a consise lambda syntax and would work with a F# application operator.
Use |> for the Hack proposal
and -> for F# -style.