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 >>>>>>> >>> >>>>>>> >>> >>>>>>> >> >>>>>>> > >>>>>>> >>>>>> >>>>>> >>>> >>> >> >
