%define(test,a,b,c,%a = %a)\ %\ "y" = "%a" "a = x" = "%test(z,1,2)" "y" = "%a" "a = x" = "%locals(a,%a = %a)" "y" = "%a" \ %define(fak,x,%if(%[%x==1],1,%[%x*%fak(%[%x-1])]))\ %define(nfak,x,%if(%[x==1],1,%[x*%fak(%[x-1])]))\ "720" = "%fak(%fak(3))" "720" = "%nfak(%nfak(3))" --- %define(fib,x,%if(%bound(fib_%x),%{%%fib_%x},%%{%%fib_%x}))\ #define fib_1 1 #define fib_2 1 "832040" = "%fib(30)" %for(i,1,30,fib%'('%i%')' = %fib(%i)%'\n')\ %define(kfib,x,%if(%[x<3],1,%[%kfib(%[x-1])+%kfib(%[x-2])]))\ "5" = "%kfib(5)" %locals(i,%for(i,1,10,))\ "%%i" = "%i" --- %define(func,a,b,a = %a ; b = %b)\ "a = x ; b = y" = "%func(x,y)" --- %define(varfunc1,a,b::,%encode(%b))\ %varfunc1(a) %varfunc1(a,1,2,3) %define(varfunc2,a,b:3:,%encode(%b))\ %varfunc2(a,1,2) %varfunc2(a,1,2,3) %define(varfunc3,a,b::3,%encode(%b))\ %varfunc3(a) %varfunc3(a,1,2,3) %varfunc3(a,1,2,3,4) %define(varfunc4,a,b:3:4,%encode(%b))\ %varfunc4(a,1,2) %varfunc4(a,1,2,3) %varfunc4(a,1,2,3,4) %varfunc4(a,1,2,3,4,5)