Hi,

I am trying to do some kind of cutting-plan algorithm in JuMP.

I currently have the following example:

```
function generate_model(ydisc :: Vector{Vector{Float64}})
model = Model(SCIP.Optimizer)
@variable(model, 0 <= x[1:2] <= 6)
@variable(model,0 <=z<=1)
@objective(model, Min, 10-x[1])
for (i,ydisc_i) in enumerate(ydisc)
@NLconstraint(model, ((ydisc_i[1]^2/(1+exp(-40*(x[1]-ydisc_i[1])))+x[1]-ydisc_i[1]-2))<=0)
end
return model
end
```

As you can see, the expression for the constraint is hard-coded into the model.

Is there a way that I can define this model for a general user defined function?

```
#define g outside, perhaps even as a lambda generated by another function
@NLconstraint(model, g(x,y_disc_i)<=0)
```

Here it says that â€śAll nonlinear expressions must be inside of macros.â€ť Does that mean, that I have to hard-code the functions. (I am new to Julia, usually use more Python or C++). Surprisingly, the EAGO.jl solver seems to have some operatoroverloading, so some experiments I tried only worked with that solver.

Regards