REBOL [
Title: "Automatic local variables"
Date: 20-Jul-1999
File: %protect-func.r
Version: 1.0
Author: "Thomas Jensen"
Email: dm98411@edb.tietgen.dk
Tabs: 4
Language: 'English
Charset: 'ANSI
Purpose: {
Function generator that automatically makes local variables
}
Category: [script 3]
]
protected-function: function [spec body] [ locals ][
locals: make block! []
foreach word body [
if set-word? :word [
append locals make word! :word
]
]
function spec locals body
]
example: [
some-math-function: protected-function [x] [
y: + x 2
z: / x 2
z + y
]
x: "this string (x) has not been modified!"
y: "this string (y) has not been modified!"
z: "this string (z) has not been modified!"
print some-math-function 4
print [x newline y newline z]
]
do example