@ETHproductions GolfScript doesn't have an official online interpreter. Moreover, copy.sh/golfscript is incompatible with the official Ruby interpreter.
Plenty of ways you can optimize recursion, even then. (in terms of x86: reserve some register or two for the recursive call to not use the stack to pass things along, don't use x86 call, use a jump, etc)
@moonheart08 IIRC x86 can't actually do recursion with subroutines without some magic involved. If you call a subroutine that's already been called somewhere up the call stack, it will overwrite the address to jump back to on ret and you'll get stuck in an infinite loop.
This has to do with a story my dad told from back when he actually used Assembly, so what I'm describing might actually predate x86 and not apply anymore.
I like (a, b) |> c better because I think |> shouldn't be seen as a function call but more like you take a value and then feed it into the next part of the expression.
Also programming language idea: operators that are closer to their values bind that value more tightly, so a+b * c == (a+b) * c but a+b*c is still a+(b*c)
@Pavel oh yeah you're right. should |*> be a thing?
If you have a splat pipe |*> then , can go between |> and |*> in precedence since splatting a tuple into a function is generally more useful than piping it in directly.
It's basically APLs level of "esoteric"ness (I'm using "esoteric" VERY loosely, as APL (most if not all varieties) are non-esoteric) high on tons of crack. To clarify, it seems like it was designed switching between esoteric and non-esoteric