I am trying to distribute dots wherever necessary, so that I can apply an expression to a dataframe and evaluate it.
say I give it the expression:
My_Expression = :(3 + log(x1) + 2 * sqrt(abs(log(x2))) + asin(x4))
and I want it to return:
Returned_Expression = :(3 + log.(x1) + 2 * sqrt.(abs.(log.(x2))) + asin.(x4))
I have this code that works in version 0.6.3, where it successfully adds dots to every function call inside the expression, but when I tried to run it on version 0.7 it interpolates the expression with a dollar sign.
function add_dots(x::Expr) for argument in x.args if argument isa Expr if argument.args != :* argument.head = :. end add_dots(argument) end end return x end
Any thoughts on why this may be happening or what to do about it would be much appreciated!