Documentation for this module may be created at Module:Ackermann/doc

p = {}

function p.ackermann(m, n)
    if m == 0 then
    	return n + 1
    elseif n == 0 then
		return p.ackermann(m-1,1)
	else
		return p.ackermann(m-1, p.ackermann(m, n-1))
	end
       
end

function p.invoke(frame)
    return p.ackermann(frame.args[1], frame.args[2])
end

return p