Nested function: Difference between revisions
Content added Content deleted
(RPL: add section) |
|||
Line 1,497: | Line 1,497: | ||
3. third |
3. third |
||
</pre> |
</pre> |
||
=={{header|RPL}}== |
|||
===Fully compliant=== |
|||
The outer function creates the inner function, then deletes it at its last execution step. |
|||
The <code>\n</code> substring must be replaced by a <code>Newline</code> character when typing the code. |
|||
≪ |
|||
≪ + OVER →STR SWAP + ROT SWAP + SWAP 1 + ≫ ''''MakeItem'''' STO |
|||
"" 1 |
|||
3 PICK "first\n" '''MakeItem''' 3 PICK "second\n" '''MakeItem''' 3 PICK "third\n" '''MakeItem''' |
|||
DROP SWAP DROP |
|||
''''MakeItem'''' PURGE |
|||
≫ |
|||
‘'''MakeList'''’ STO |
|||
". " '''MakeList''' |
|||
{{out}} |
|||
<pre> |
|||
1: "1. first |
|||
2. second |
|||
3. third" |
|||
</pre> |
|||
===Unnamed nested functions=== |
|||
It is more idiomatic in RPL to use unnamed nested functions, which allows the use of local variables and then increases code readability. |
|||
≪ "" 1 |
|||
1 3 '''FOR''' j |
|||
3 PICK { "first\n" "second\n" "third\n" } j GET |
|||
→ sep item ≪ DUP →STR sep + item + ROT SWAP + SWAP 1 + ≫ |
|||
'''NEXT''' |
|||
DROP SWAP DROP |
|||
≫ |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |