However, it does look like this use pattern does resolve to 'getindex',

*julia> **dump(:( Int[1, 2, 3, 4] ))*

Expr 

  head: Symbol ref

  args: Array(Any,(5,))

    1: Symbol Int

    2: Int64 1

    3: Int64 2

    4: Int64 3

    5: Int64 4

  typ: Any


*julia> **getindex(Int, 1, 2, 3, 4)*

*4-element Array{Int64,1}:*

* 1*

* 2*

* 3*

* 4*


So now I am not so sure about my claim that most concatenation doesn't go 
through function calls. However, I don't think that the rest of the 
concatenating heads (:vect, :vcat, :typed_vcat, etc.) lower to getindex:


*julia> **@which([1, 2, 3, 4])*

*vect{T}(X::T...) at abstractarray.jl:13*


*julia> **@which([1; 2; 3; 4])*

*vcat{T<:Number}(X::T<:Number...) at abstractarray.jl:643* 


they seem instead to call the type 'vect', 'vcat', etc. itself on the array 
arguments.

Reply via email to