To continue the theme:

What is [[3, 4], [5, 6]]  supposed to do now? I thought this was supposed 
to give me an array of arrays, but it just gives me a deprecation warning.

And [[3,4]; [5,6]]  gives me concatenation. 

How do I just get the 1D array of 1D arrays?


 

> 2015-02-26 1:56 GMT+01:00 Simon Danisch <[email protected] <javascript:>>:
>
>> Just to make sure that we're on the same page: you say that your 
>> suggestion actually doesn't work to construct a Matrix{Vector3}?
>> or is does [[a,a,a]' ; [a,a,a]'] lead to different results than [b ; b]?
>>
>> I just tried it, [b ; b] on my 4 days old master yields Matrix{Vector3}.
>> (with b = Array(Vector3{Int}, 1, 3), as it's currently impossible to 
>> create b differently)
>>
>> 2015-02-26 1:39 GMT+01:00 Josh Langsfeld <[email protected] <javascript:>>
>> :
>>
>>> In general I think you are making good points. Different parallel 
>>> syntaxes for constructing with and without flattening would be a nice 
>>> feature.
>>>
>>> On Wed, Feb 25, 2015 at 6:46 PM, Simon Danisch <[email protected] 
>>> <javascript:>> wrote:
>>>
>>>> So what do I expect from your case?
>>>> [[a,a,a]' ; [a,a,a]']
>>>> b = [a,a,a]'  => some array, which looks comparable to Case 2
>>>> [b ; b] -> independent of b's shape, this should result in 
>>>> Array{eltype(b)} and not Array{typeof(b)}, from what I learned in Case 2.
>>>> Otherwise this is quite confusing, as concatenating would also depend 
>>>> on the shape, which makes it hard to predict, when something concatenates 
>>>> or just constructs.
>>>>
>>>
>>> In this case, [b ; b] does indeed always have type Array{eltype(b)} and 
>>> not Array{typeof(b)} (unless typeof(b) == Number).
>>>  
>>>
>>>>
>>>> 2015-02-26 0:10 GMT+01:00 Josh Langsfeld <[email protected] 
>>>> <javascript:>>:
>>>>
>>>>> Assuming transposing works, you could do [[a,a,a]' ; [a,a,a]'] which 
>>>>> isn't entirely horrible
>>>>>
>>>>> On Wednesday, February 25, 2015 at 5:50:04 PM UTC-5, Simon Danisch 
>>>>> wrote:
>>>>>>
>>>>>> Okay... So how do I realize:
>>>>>> a = vec3(...)
>>>>>> [ a a a ; a a a]
>>>>>>
>>>>>> Well, all I think is, that arrays of arrays get treated like second 
>>>>>> class citizens, as it is harder to work with them in the same way, as it 
>>>>>> would be possible with concatenating ;)
>>>>>> This is especially relevant with FixedSizeArrays coming up, as they 
>>>>>> allow for tightly packed array of arrays.
>>>>>> What I mean becomes obvious, if you look at the number of 
>>>>>> constructors:
>>>>>> [a,b,c] for non concatenating
>>>>>> vs
>>>>>> [a;b;c;], [a b c], [a b c; a b c] (+ some variations) for 
>>>>>> concatenation
>>>>>>
>>>>>>
>>>>>> 2015-02-25 23:24 GMT+01:00 Jeff Bezanson <[email protected]>:
>>>>>>
>>>>>>> Transposing [vec1, vec2, vec3] will absolutely work. I think the 
>>>>>>> issue
>>>>>>> you saw with it was specific to ImmutableArrays. I don't know why 
>>>>>>> they
>>>>>>> have that behavior.
>>>>>>>
>>>>>>> On Wed, Feb 25, 2015 at 5:21 PM, Simon Danisch <[email protected]> 
>>>>>>> wrote:
>>>>>>> > I mean, my whole busyness is about constructing matrices of 
>>>>>>> Vec2/3/4, which
>>>>>>> > inherit from DenseArray.
>>>>>>> > So I'm basically forced, if I'm not missing something, to do quite 
>>>>>>> a bit of
>>>>>>> > work to get my [vec1 vec2 vec3] going.
>>>>>>> > Especially, as transpose([vec1, vec2, vec3]) doesn't seem to work, 
>>>>>>> bug or
>>>>>>> > not isn't known to me.
>>>>>>> >
>>>>>>> > 2015-02-25 23:18 GMT+01:00 Simon Danisch <[email protected]>:
>>>>>>> >>
>>>>>>> >> Well, the issue raised here was, how do you realize non 
>>>>>>> concatening [a b
>>>>>>> >> c]? This seems impossible now, even though that there are quite a 
>>>>>>> few use
>>>>>>> >> cases for it...
>>>>>>> >>
>>>>>>> >> 2015-02-25 23:13 GMT+01:00 Stefan Karpinski <[email protected]
>>>>>>> >:
>>>>>>> >>>
>>>>>>> >>> I actually think the plan of [a,b,c] for construction without
>>>>>>> >>> concatenation and [a;b;c] and [a b c] for concatenation is 
>>>>>>> pretty good. I no
>>>>>>> >>> longer feel that there's any need for a new bracket like [| |]. 
>>>>>>> The thing
>>>>>>> >>> that clicked for me is that [a;] isn't really concatenation at 
>>>>>>> all anyway.
>>>>>>> >>>
>>>>>>> >>> On Wed, Feb 25, 2015 at 4:58 PM, Simon Danisch <
>>>>>>> [email protected]>
>>>>>>>
>>>>>>> >>> wrote:
>>>>>>> >>>>
>>>>>>> >>>> As Julia was the first language to introduce me to this kind of
>>>>>>> >>>> constructs, I'm not sure about your used terms.
>>>>>>> >>>> Concatenate for me would firstly mean, to just connect elements 
>>>>>>> (that's
>>>>>>> >>>> at least what the German translation suggests), which I would 
>>>>>>> apply to the
>>>>>>> >>>> process of putting the elements together into one array. The 
>>>>>>> elements in my
>>>>>>> >>>> case are the Vectors.
>>>>>>> >>>> You seem to use it as synonymous with concatenation + flattening
>>>>>>> >>>> (sticking to the function names I guess).
>>>>>>> >>>> I'd say [a,b] is supposed to concatenate, but shouldn't 
>>>>>>> flatten, right?
>>>>>>> >>>> So yes, different syntax for concatenating, and 
>>>>>>> concatenating+flattening
>>>>>>> >>>> would make this case much, much clearer.
>>>>>>> >>>> Then it's not this fuzzy magic thing, that sometimes happens and
>>>>>>> >>>> sometimes not and both clearly encapsulates a concept and use 
>>>>>>> the same basic
>>>>>>> >>>> syntax.
>>>>>>> >>>> So:
>>>>>>> >>>> [vec, vec] => [vec, vec] # With optional typing, ensuring that 
>>>>>>> you don't
>>>>>>> >>>> end up with Any[]
>>>>>>> >>>> [vec vec] => [vec vec]  # With optional typing, ensuring that 
>>>>>>> you don't
>>>>>>> >>>> end up with Any[]
>>>>>>> >>>>
>>>>>>> >>>> [| vec, vec |] => [el1, el2, el3, el4, ...]# With optional 
>>>>>>> typing,
>>>>>>> >>>> ensuring that you don't end up with Any[]
>>>>>>> >>>> [| vec vec |]  => [el el2 ; el3 el4]# With optional typing, 
>>>>>>> ensuring
>>>>>>> >>>> that you don't end up with Any[]
>>>>>>> >>>>
>>>>>>> >>>> I do think, that this is very clear and consistent and doesn't 
>>>>>>> leave
>>>>>>> >>>> anything in doubt!
>>>>>>> >>>>
>>>>>>> >>>>
>>>>>>> >>>> Am Mittwoch, 25. Februar 2015 19:00:01 UTC+1 schrieb Simon 
>>>>>>> Danisch:
>>>>>>> >>>>>
>>>>>>> >>>>> Hi there,
>>>>>>> >>>>> I thought default concatenation was deprecated, to make it 
>>>>>>> easier to
>>>>>>> >>>>> create arrays of arrays... But it became rather impossible and 
>>>>>>> confusing in
>>>>>>> >>>>> the horizontal case, from what I see.
>>>>>>> >>>>> Is there really not a single method left from the few ways in 
>>>>>>> 0.35 of
>>>>>>> >>>>> creating a horizontal vector of vectors?
>>>>>>> >>>>> 0.4:
>>>>>>> >>>>>
>>>>>>> >>>>> https://gist.github.com/SimonDanisch/
>>>>>>> 6972c1c090c608738e83#file-cat0-4-jl
>>>>>>> >>>>> 0.3.5:
>>>>>>> >>>>>
>>>>>>> >>>>> https://gist.github.com/SimonDanisch/
>>>>>>> 058ef76b2583c620b667#file-cat3-5-jl
>>>>>>> >>>>>
>>>>>>> >>>>> Am I missing something, or is this a bug?!
>>>>>>> >>>>>
>>>>>>> >>>>> Best,
>>>>>>> >>>>> Simon
>>>>>>> >>>
>>>>>>> >>>
>>>>>>> >>
>>>>>>> >
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>
>>
>

Reply via email to