Array indexing produces a brand new array that has literally no
relationship with the source array.
-- John
On Monday, March 7, 2016 at 5:21:34 PM UTC-8, Daniel Carrera wrote:
>
> Hello,
>
> Some Julia functions act on their inputs. For example:
>
> julia> vals = [6,5,4,3]
> 4-element Array{Int64,1}:
> 6
> 5
> 4
> 3
>
> julia> sort!(vals);
>
> julia> vals
> 4-element Array{Int64,1}:
> 3
> 4
> 5
> 6
>
>
> However, it looks like these functions do not modify array slices:
>
> julia> vals = [6,5,4,3]
> 4-element Array{Int64,1}:
> 6
> 5
> 4
> 3
>
> julia> sort!(vals[2:end])
> 3-element Array{Int64,1}:
> 3
> 4
> 5
>
> julia> vals
> 4-element Array{Int64,1}:
> 6
> 5
> 4
> 3
>
>
> Can anyone explain to me why this happens? Is this a language feature? Is
> it at all possible to make a destructive function that acts on slices?
>
> Cheers,
> Daniel.
>
>