If there are multiple arguments, then the behavior of broadcasting and map
are quite different:
Broadcasting does… broadcasting, and map
does not:
julia> [1] .+ [1, 2, 3]
3-element Array{Int64,1}:
2
3
4
julia> map(+, [1], [1, 2, 3])
1-element Array{Int64,1}:
2
julia> [1, 1] .+ [1, 2, 3]
ERROR: DimensionMismatch("arrays could not be broadcast to a common size; got a dimension with lengths 2 and 3")
julia> map(+, [1, 1], [1, 2, 3])
2-element Array{Int64,1}:
2
3
Also, broadcasting has some “symbolic” definitions for some types:
julia> (1:5) .+ (1:5)
2:2:10
julia> map(+, 1:5, 1:5)
5-element Array{Int64,1}:
2
4
6
8
10
Unfortunately I don’t think there is yet a “standard” multi-argument “map” that is requires the arguments to have the same indices. (I asked here.)