On Wednesday, February 25, 2015 06:21:24 PM David P. Sanders wrote:
> 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.

Eventually it will give you an array of arrays, but now we're in a period of 
transition.

Try Vector{Int}[[3,4], [5,6]]

--Tim

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