dynamicLet
dynamicLet(
(
[(s_var1 g_init1)
(s_var2 g_init2)
...]
)
=> g_result
Description
Evaluates the init forms (g_init1, g_init2, ...) in the current lexical environment, and then binds the variables (s_var1, s_var2, ...) in parallel. The variables are bound as SKILL dynamic variables for the duration of the body forms.
In SKILL, this syntax form is compiled as a let().
Arguments
Value Returned
Examples
(dynamicLet ((X 21))
(let ((a 100)
b)
(dynamicLet ((X a)
(Y (progn b=12
13)))
(printf "(inSkill X) == %L\n" (inSkill X))
(printf "a == %L\n" a)
(assert (inSkill X) == a)
(assert (inSkill X) == 100)
(assert (inSkill Y) == 13)
(assert a == 100)
(assert b == 12)))
(assert (inSkill X) == 21))
(inSkill X) == 100
a == 100
nil
(inScheme (dynamicLet ((X 21))
(let ((a 100)
b)
(dynamicLet ((X a)
(Y (progn b=12
13)))
(printf "(inSkill X) == %L\n" (inSkill X))
(printf "a == %L\n" a)
(assert (inSkill X) == a)
(assert (inSkill X) == 100)
(assert (inSkill Y) == 13)
(assert a == 100)
(assert b == 12)))
(assert (inSkill X) == 21))
)
(inSkill X) == 100
a == 100
nil
Related Topics
Function and Program Structure
Return to top