Find limit of recursion: Difference between revisions

Content deleted Content added
Hout (talk | contribs)
Added Neko
Line 1,636: Line 1,636:
USER 72d0>
USER 72d0>
</pre>
</pre>

=={{header|Neko}}==
<lang ActionScript>/**
Recursion limit, in Neko
*/

/* This version is effectively unlimited, (50 billion test before ctrl-c) */
sum = 0.0
counter = 0
tco = function(n) {
sum += n
counter += 1
if n > 10000000 return n else tco(n + 1)
}

try $print("Tail call recursion: ", tco(0), " sum: ", sum, "\n")
catch with $print("tco counter: ", counter, " ", with, "\n")

/* Code after tail, these accumulate stack, will run out of space */
sum = 0.0
counter = 0
recurse = function(n) {
sum += n
counter += 1
if n > 1000000 return n else recurse(n + 1)
return sum
}

try $print("Recurse: ", recurse(0), " sum: ", sum, "\n")
catch with $print("recurse limit exception: ", counter, " ", with, "\n")</lang>

{{out}}
<pre>prompt$ nekoc recursion-limit.neko
prompt$ neko recursion-limit.n
Tail call recursion: 10000001 sum: 50000015000001
recurse limit exception: 52426 Stack Overflow</pre>


=={{header|NetRexx}}==
=={{header|NetRexx}}==