PROCEDURE Main() LOCAL i, bBlock[3] MEMVAR Var1, Var2, Var3, Macro PRIVATE Var1, Var2, Var3, Macro M->Var1 := "Var1" M->Var2 := "Var2" M->Var3 := "Var3" CLS FOR i = 1 TO 3 M->Macro := "Var" + Str( i, 1 ) bBlock[i] := {|| &Macro } NEXT ? "Early (Simple):" FOR i = 1 TO 3 ? Eval( bBlock[i] ) NEXT FOR i = 1 TO 3 M->Macro := "Var" + Str( i, 1 ) bBlock[i] := {|| &Macro + "!" } NEXT ? ? "Early (Complex):" FOR i = 1 TO 3 ? Eval( bBlock[i] ) NEXT FOR i = 1 TO 3 M->Macro := "Var" + Str( i, 1 ) bBlock[i] := {|| &(Macro) } NEXT ? ? "Late:" FOR i = 1 TO 3 ? Eval( bBlock[i] ) NEXT RETURN