2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -1,15 +1,18 @@
|
|||
While implementing a recursive function, it often happens that we must resort to a separate "helper function" to handle the actual recursion.
|
||||
While implementing a recursive function, it often happens that we must resort to a separate ''helper function'' to handle the actual recursion.
|
||||
|
||||
This is usually the case when directly calling the current function would waste too many resources (stack space, execution time), cause unwanted side-effects, and/or the function doesn't have the right arguments and/or return values.
|
||||
This is usually the case when directly calling the current function would waste too many resources (stack space, execution time), causing unwanted side-effects, and/or the function doesn't have the right arguments and/or return values.
|
||||
|
||||
So we end up inventing some silly name like "foo2" or "foo_helper". I have always found it painful to come up with a proper name, and see a quite some disadvantages:
|
||||
So we end up inventing some silly name like '''foo2''' or '''foo_helper'''. I have always found it painful to come up with a proper name, and see some disadvantages:
|
||||
|
||||
* You have to think up a name, which then pollutes the namespace
|
||||
* A function is created which is called from nowhere else
|
||||
* The program flow in the source code is interrupted
|
||||
::* You have to think up a name, which then pollutes the namespace
|
||||
::* Function is created which is called from nowhere else
|
||||
::* The program flow in the source code is interrupted
|
||||
|
||||
Some languages allow you to embed recursion directly in-place. This might work via a label, a local ''gosub'' instruction, or some special keyword.
|
||||
Some languages allow you to embed recursion directly in-place. This might work via a label, a local ''gosub'' instruction, or some special keyword.
|
||||
|
||||
Anonymous recursion can also be accomplished using the [[Y combinator]].
|
||||
Anonymous recursion can also be accomplished using the [[Y combinator]].
|
||||
|
||||
If possible, demonstrate this by writing the recursive version of the fibonacci function (see [[Fibonacci sequence]]) which checks for a negative argument before doing the actual recursion.
|
||||
|
||||
;Task:
|
||||
If possible, demonstrate this by writing the recursive version of the fibonacci function (see [[Fibonacci sequence]]) which checks for a negative argument before doing the actual recursion.
|
||||
<br><br>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue