Hi,
I cannot explain this behavior. I apply a function to a variable in the
workspace, the function initializes its local variable at the workspace
variable, then modifies the local variable and produces the desired output.
However, it turns out the Julia modifies both the local and workspace
variable with each operation on the local variable. Only the local variable
is supposed to be modified.
*This is very dangerous behavior, as Julia is modifying the data itself
between performing operations on the data; the data itself is supposed to
remain fixed between operations on it.*
*Minimal working example:*
data=[1,2,3]
function square(arg)
inner_var = arg
for i=1:length(inner_var)
inner_var[i] = inner_var[i]^2
end
return inner_var
end
output=square(data)
julia> print(data)
[1,4,9]
The data has been squared due to the local variable, which was initialized
at the data values, being squared. Now, if i wish to apply a different
function to the data, the result will be incorrect because the data has
been modified unintentionally.
How long has Julia been doing this? Was this behavior intentional?
Bradley