Find limit of recursion: Difference between revisions
Content deleted Content added
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}}== |