Я пытаюсь написать макрос, который вызывает функции с аргументами ключевых слов (для использования в JuMP NL выражений и отображений. Эти функции являются просто функциями для доступа к базе данных. Поэтому они не представляют математическую операцию).
Минимальный пример:
function foo1(; int::a=1)
a
end
function foo2(; int::a=1, int::b=2)
b
end
macro callfunc(f, keywordargs)
#function should be called here using symbol
#return values of f should be returned by macro callfunc
ex= :($(that)(;$(keywordargs)...)) #this syntax is not correct for sure
return eval(ex)
end
@callfunc(foo1, (a=1))
#should return 1
@callfunc(foo2, (a=1, b=2))
#should return 2
Надеюсь, вы поняли мою идею, я очень ценю вашу помощь!