(* This program returns the nth fibonacci number * * or 0 if the parameter is invalid. * * Based on a program by Jonathan Paisley and Matt Wemmie. *) function main ( elementWanted : integer ) : integer if elementWanted < 1 then 0 else addNext(1, elementWanted, 0, 1) function addNext(currentElement : integer, elementWanted : integer, previousSum : integer, currentSum : integer ) : integer if elementWanted = currentElement then currentSum else addNext( currentElement + 1, elementWanted, currentSum, previousSum + currentSum )