For some applications you can use sympy and/or an infinite iterator approaching the right answer, but for lots of applications you're doing millions of computations in a row and you can't have a number type that takes ten times longer and gets bigger every time you use it for those
@RydwolfPrograms When you write int32_t value : 24;, you're telling the compiler to truncate it to 24 bits on every assignment. This is meant to support bitfields when you have multiple values packed into a byte/word, but
Tail Call Optimization allows a function call as the returned value of a function to be optimized to a goto, preventing the stack from growing. Among other things, this allows infinite recursion without worrying about the call stack size. While TCO applies to any function call performed as the fi...
@RydwolfPrograms I think this is fundamentally a solid question, but the pros & cons framing does it no favours. Something like "what are the trade-offs made by supporting only tail recursion optimisation" invites judgement & analysis that can weigh those factors instead of just enumerating them
@MichaelHomer Well, answers should also be try to objective. But I guess it does make sense to say "prefer <X> if <Y> is your use case, prefer <Z> if <A> is your use case"
@RydwolfPrograms Also, frankly, answers that make a case should be encouraged and notwithstanding the "opinion-based" close reason they are all over the network: "use find -delete for this, because piping find to xargs is dangerous" is just as much presenting an argument
The problem is when the answer can only be "because I think so"
@mousetail This has made a lot more sense as I've been implementing it, but there's just one problem: two TJN instructions at the same location must be represented in the same line of assembly even if the IP direction differs, with one being a jump to the other.
Actually that shouldn't be too difficult to fix, I just change the map keys from (location, direction) to (location, instruction)
no that messes with the mirrors, where they must stay separate
It's like I have to add special case handling for the threading operator