Addition doesn't seem to be defined for tuples:

julia> (1,2,3) + (4,5,6)
ERROR: `+` has no method matching +(::(Int64,Int64,Int64),
::(Int64,Int64,Int64))


The BoundsError is quite misleading however. Not sure what it's really
doing in there.  Tuples are pretty separated from arrays in Julia however,
in other languages such as Python I see tuples and lists used
interchangeably quite a bit, however in Julia the most common usage of
tuples I've found are in metaprogramming (collecting function arguments and
the like).  If you want to perform algebraic operations you should be using
Arrays that contain well defined types.  This is, after all, one reason
Julia is able to achieve high speeds; if Julia knows that every element in
your array is an Int64, or a Float32 or whatever you like, then an
operation such as you have above can be performed very quickly without
performing type-checking on each individual element in your array.
-E


On Tue, Sep 2, 2014 at 8:49 AM, <[email protected]> wrote:

> julia> versioninfo()
> Julia Version 0.4.0-dev+323
> Commit ecd039c* (2014-08-24 16:57 UTC)
> Platform Info:
>   System: Linux (x86_64-redhat-linux)
>   CPU: Intel(R) Xeon(R) CPU E7- 4830  @ 2.13GHz
>   WORD_SIZE: 64
>   BLAS: libopenblas (USE64BITINT NO_AFFINITY NEHALEM)
>   LAPACK: libopenblas
>   LIBM: libopenlibm
>   LLVM: libLLVM-3.3
>
> julia> map((x,y,z)->x+y+z,[1,2,3],[2,3,4],[3,4,5])
> 3-element Array{Int64,1}:
>   6
>   9
>  12
>
> julia> map((x,y,z)->x+y+z,(1,2,3),(2,3,4),(3,4,5))
> ERROR: BoundsError()
>  in heads at tuple.jl:56
>  in map at tuple.jl:59 (repeats 4 times)
>
>
>
>

Reply via email to