test recurse 3 -1-2-1-3-1-2-1- test procedure 8 2 procedure with global proc z 4 proc w FALSE FALSE procedure no return TRUE proc w proc w FALSE TRUE procedure return FALSE proc w procedure 1 proc z DIVIDE proc x proc y procedure 2 proc x proc w TRUE test function function with arguments 2 3 -1 function with side effect func z side effect func a unchanged func c global function with global 2 3global function with scope func a unchanged function return TRUE TRUE function no return FALSE FALSE function 1 func z side effect MINUS func x func y function 2 func a 1 func a func c function 3 func a TRUE FALSE recurse GT n 0 text MINUS n 1 n MINUS n 1 text - text