It is always possible to move a recursive algorithm to a non-recursive one; 
even avoiding psuedo-stacks or tail-recursion games.

It is, ironically, something I enjoy doing because it is quite the intellectual 
puzzle sometimes. The toughest one I did was with the Negamax (Minimax with 
restrictions) in a python library. (Sorry, I've not moved it to Nim yet.)

But, for context: writing a normal negamax algo in any language takes, perhaps, 
a few hours in any language. But, writing the non-recursive one, involved 
multiple convoluted arrays and more complex edge cases than I've ever 
encountered before. It took over a week of intense work.

SO,

Anything your head can do can be described in an algorithm with enough scrutiny.

(BTW, the non-recursive version of negamax is about 3 to 8 times faster. But it 
uses lots more memory.)

Reply via email to