Как упоминалось @laborg, довольно часто вам не нужно / не нужно использовать метапрограммирование . Поскольку вы уже пытаетесь использовать синтаксис индексации массива (h_[i]
), возможно, вам следует просто создать вектор функций, например, так:
h_ = [x->i*x for i in 1:n]
Здесь x->i*x
- это анонимная функция - функция, которую мы не хотим давать имени. После этого вы можете использовать фактическое индексирование массива для доступа к этим различным функциям и их вызова.
Демонстрация:
julia> n = 3;
julia> h_ = [x->i*x for i in 1:n];
julia> h_[1](3)
3
julia> h_[2](3)
6
julia> h_[3](3)
9
Нет необходимости в метапрограммировании.
(С другой стороны, в В этом конкретном примере, вероятно, лучшим вариантом будет отдельная функция h(x;i) = i*x
с аргументом ключевого слова i
. Но я предполагаю, что это упрощенный пример.