Copyright 2004 Ray Ontko & Co. All rights reserved. begin-setup create-array name=stack size=100 field=param:number field=tmp1:number end-setup begin-program input $answer 'Which element in the sequence' move $answer to #answer do f(#answer,#result) show #result edit 999999 end-program begin-procedure f(#param, :#return) add 1 to #_call_level if #param < 2 move 1 to #return else subtract 1 from #param put #param into stack(#_call_level) param do f(#param, #tmp1) get #param from stack(#_call_level) param subtract 1 from #param put #param #tmp1 into stack(#_call_level) param tmp1 do f(#param, #tmp2) get #param #tmp1 from stack(#_call_level) param tmp1 let #return = #tmp1 + #tmp2 end-if subtract 1 from #_call_level end-procedure f