Building this using strings is most likely most simple option as the expression is quite simple one. But... I don't like using Eval(Parse()) so here are few options which are not using that (second option might not do what you want with missing values)
Names Default To Here(1);
dt = New Table("Untitled 3",
Add Rows(0),
Compress File When Saved(1),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([0,1])),
New Column("b", Numeric, "Continuous", Format("Best", 12), Set Values([0,0])),
New Column("c", Numeric, "Continuous", Format("Best", 12), Set Values([0,0]))
);
input_col_list = {"a", "b", "c"};
x = 0.1;
// using Or
or_expr = Expr(Or());
// https://community.jmp.com/t5/JSL-Cookbook-Archived/Insert-one-expression-into-another-using-Eval-Insert-Eval-Expr/ta-p/48998
For Each({col_name}, input_col_list,
col_expr = Substitute(
expr(_col_ref_ >= _comparison_value_),
Expr(_col_ref_), NameExpr(AsColumn(Column(dt, col_name))),
Expr(_comparison_value_), x
);
Insert Into(or_expr, Name Expr(col_expr));
);
// Show(name expr(or_expr));
Eval(EvalExpr(dt << New Column("d", Numeric, Continuous, Formula(
If(Expr(name expr(or_expr)), 1, 0)
))));
// using matrix and any
col_refs = Transform Each({col_name}, input_col_list,
Name Expr(As Column(Column(dt, col_name)));
);
Eval(EvalExpr(dt << New Column("d", Numeric, Continuous, Formula(
Any(Matrix(Expr(col_refs)) >= Expr(x))
))));
// function of second option
create_check_col = function({dt, col_input, limit_val}, {Default Local},
col_refs = Transform Each({col_name}, col_input,
Name Expr(As Column(Column(dt, col_name)));
);
new_col = Eval(EvalExpr(dt << New Column("d", Numeric, Continuous, Formula(
Any(Matrix(Expr(col_refs)) >= Expr(limit_val))
))));
return(new_col);
);
create_check_col(dt, input_col_list, x);
-Jarmo