/* Remember about functions running in their own private little universes. Every time a function is called, even if it is already running, a new chunk of memory is set aside for it to store all of its values. This program prints the sequence 13 6 3 1 0 0 1 3 6 13. When it prints the two zeros, there are five different chunks of memory, all for the different runs of strange that haven't finished yet. There are 5 different versions of n, one for each. */ #include "library.h" void strange(int n) { print(n); print(" "); if (n>0) strange(n/2); print(n); print(" "); } void main() { strange(13); }