Mine
public text v1 · immutablefactorial[... end n]
factorial_internal(... end 0 n)
{all of this should be easier with anonymous functions}
factorial_internal[... n]
if(... n stop cont n)
cont[... end res n]
add(... end n factorial_internal_second res n)
stop[... end res n]
end(... res)
factorial_internal_second[... end n res]
subtract(... end res factorial_internal n 1)