The function word

The function word allows for the most complete function definition. We'll describe and show examples of all possible attributes in the next section. One key difference between it and the other forms is that function automatically makes its variables local, so /local is not necessary. Omitting /local from the previous example gives us function sum:

number: 108               ; globalsum: function [a b][    number: a + b         ; local    print number          ; local ]                         ;== func [a b /local number][...]sum 3 5                   ;== 8print number + 1          ;== 109 ; global

From the return value after the definition of sum, we can see that number is automatically made local—no conflict can occur between global and local values anymore.

If you really need to, you can force a variable ...

Get Learn Red - Fundamentals of Red now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.