26 lines
513 B
Text
26 lines
513 B
Text
Red [
|
|
Title: "Runtime evaluation/in an environment"
|
|
Author: "hinjolicious"
|
|
]
|
|
|
|
; a simple but generic lambda function
|
|
; multi-args lambda
|
|
; save it or directly evaluate
|
|
|
|
lambda: func [a b /eval v /local f][
|
|
f: func a b
|
|
either eval [do compose [f (v)]][:f]
|
|
]
|
|
|
|
prog: [x * x + x - 10]
|
|
a: lambda/eval [x] prog [2]
|
|
b: lambda/eval [x] prog [4]
|
|
print b - a
|
|
|
|
code: [a * b / (a + b)]
|
|
c: lambda/eval [a b] code [2 3]
|
|
d: lambda/eval [a b] code [3 4]
|
|
print d - c
|
|
|
|
my-func: lambda [x y z][x + y + z]
|
|
print my-func 10 20 30
|