// Test functionction definitions and calls // no parameters, no locals, no recursion function f() println "call f() and return 0"; return 0; end; f(); // add parameters var i; i = 0; println "Global i=",i; function g(i) print "call g(i=",i,") and return i="; return i; end; g(10); println "Global i=",i," should still be 0"; // add recursion function h( i, n) print "call h(",i,",",n,"), "; if i<n then return h(i+1,n-1); else return i; fi; end; i=h(1,10); println " and return ",i; // add local variables function a( i, n) var j,k; print "call a(",i,",",n,"), "; if i<n then j = i+2; k = n-1; return a(j,k); else return i; fi; end; i = a(1,20); println " and return ",i;