Write while loop equivalent in elixir

Going down to assembly language a loop often has a test, conditional jump, body and unconditional jump - which really is iterative.

Also keep in mind that iteration doesn’t require a stack frame and only tail call (last call optimized) recursion can reuse a stack frame while body recursion consumes a stack frame on each call.