RosettaCodeData/Task/Runtime-evaluation-In-an-environment/Red/runtime-evaluation-in-an-environment.red
2026-04-30 12:34:36 -04:00

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