Noticed this when playing around with the new f.(x) syntax, which I assumed would work like map.
julia> map(sin, 3) 0.1411200080598672 julia> map(sin, [3]) 1-element Array{Float64,1}: 0.14112 Map works like I'm used to: number goes to number, array goes to array. julia> sin.(3) # same as broadcast(sin, 3) ERROR: InexactError() in fill!(::Array{Int64,0}, ::Float64) at ./array.jl:155 in (::Base.Broadcast.#_F_#5)(::Array{Int64,0}, ::Int64) at ./broadcast.jl:95 in broadcast!(::Function, ::Array{Int64,0}, ::Int64) at ./broadcast.jl:213 in broadcast(::Function, ::Int64) at ./broadcast.jl:220 in broadcast(::Function, ::Int64) at ./deprecated.jl:1130 in eval(::Module, ::Any) at ./boot.jl:225 in macro expansion at ./REPL.jl:92 [inlined] in (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:46 julia> sin.([3]) # same as broadcast(sin, [3]) ERROR: InexactError() in macro expansion at ./broadcast.jl:95 [inlined] in macro expansion at ./cartesian.jl:64 [inlined] in (::Base.Broadcast.#_F_#6)(::Array{Int64,1}, ::Array{Int64,1}) at ./broadcast.jl:90 in broadcast!(::Function, ::Array{Int64,1}, ::Array{Int64,1}) at ./broadcast.jl:213 in broadcast(::Function, ::Array{Int64,1}) at ./broadcast.jl:220 in eval(::Module, ::Any) at ./boot.jl:225 in macro expansion at ./REPL.jl:92 [inlined] in (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:46 Broadcast doesn't like integers in sin for some reason julia> sin.(3.) # same as broadcast(sin, 3.) 0-dimensional Array{Float64,0}: 0.14112 julia> sin.([3.]) # same as broadcast(sin, [3.]) 1-element Array{Float64,1}: 0.14112 And it produces a 0D array when called on a Number. So broadcast works differently from map. Is the error when called on an Int a bug, given that sin(3) is obviously fine? And should calling it on a Number yield a Number or a 0D array?