Here's just the script. But definitely the article is more in depth.
Names Default To Here(1);
dt = As Table(J(5, 5, Random Uniform()), <<column names({"X1", "X2", "X3", "X4", "X5"}));
ColNames = dt << Get Column Names(String);
For(i = 1, i <= N Items(ColNames), i++,
col_name = ColNames[i];
Eval(
EvalExpr(// if you just evaluate this block you'll see that the col_name var has been replaced
dt << New Column("Ln_"||col_name, numeric, formula(
ln(Expr(Column(dt, col_name))[])
));
)
);
);