Find limit of recursion: Difference between revisions
Content added Content deleted
(Forth) |
(Logo: no limit) |
||
Line 149: | Line 149: | ||
Note also, that ^: can be used for induction, and does not have stack size limits, though it does require that the function involved is a mathematical function -- and this is not always the case (for example, Markov processes typically use non-functions). |
Note also, that ^: can be used for induction, and does not have stack size limits, though it does require that the function involved is a mathematical function -- and this is not always the case (for example, Markov processes typically use non-functions). |
||
=={{header|Logo}}== |
|||
Like Scheme, Logo guarantees tail call elimination, so recursion is effectively unbounded. You can catch a user interrupt though to see how deep you could go. |
|||
<lang logo>make "depth 0 |
|||
to recurse |
|||
make "depth :depth + 1 |
|||
recurse |
|||
end |
|||
catch "ERROR [recurse] |
|||
; hit control-C after waiting a while |
|||
print error ; 16 Stopping... recurse [make "depth :depth + 1] |
|||
(print [Depth reached:] :depth) ; some arbitrarily large number</lang> |
|||
=={{header|Oz}}== |
=={{header|Oz}}== |