In-place map!
seems to work:
a = [collect(1:3)..., -Inf, Inf, NaN]
map!(x -> 0 <= x <= 10 ? x : 0.0, a, a)
.....
julia> a
6-element Array{Float64,1}:
1.0
2.0
3.0
0.0
0.0
0.0
Is it allowed?
Assuming that it is, I made a pull request: https://github.com/JuliaLang/julia/pull/37792 .
1 Like
cstjean
September 29, 2020, 6:29am
2
I would have been surprised if it didn’t work. map!(f, dest, src)
is just:
for i in eachindex(src)
dest[i] = f(src[i])
end
AFAIK. An example is always nice, but IMHO there’s a missing method map!(f, iter) = map!(f, iter, iter)
which would make it obvious that it does work.
2 Likes
Agree. I was specifically looking for it in the documentation. In fact, I wrote a piece of code with it and I was surprised that it didn’t work.
That’s a great idea, but given that the semantics is different from the current map!
, perhaps a different name would be preferable. Also, there is no reason it can’t take multiple arguments, and just write into the first one.
So maybe mapinto!(f, dst_and_first_arg, args...)
?