Thanks.  I have to say, with no reflection on present company, I am about
as frustrated and disgusted with nested arrays, as defined by IBM, as I
could be.   Having enclose do one thing for all arrays and another for
scalars has caused me endless hours of frustration.  (Isn't a scalar just a
zero dimension array?)  How much time has one to spend making enclose do
what comes naturally to ones mind?  Now I find that disclose actually
modifies data beyond the ability to reconstruct it.  In your example, if
one string were a different length than the other, APL will lengthen it to
match the longest upon disclose.  The original length of each string is
lost forever.  Why stop there?  Why not change a 4 to a 7?

Having enclose and disclose uniformly add and remove layers of boxing only
is simple, consistent, predictable, useful, and easy to understand.  If I
add 3 and then subtract 3 I end up with the same number.  But if I enclose
and then disclose, I end up with something different - sometimes.  Imagine
that!

      '333' '55555'
┌→────────────┐
│┌→──┐ ┌→────┐│
││333│ │55555││
│└───┘ └─────┘│
└∊────────────┘
      ⊃'333' '55555'
┌→────┐
↓333  │
│55555│
└─────┘
      (⊃'333' '55555')[1;]
┌→────┐
│333  │
└─────┘
      ⍴(⊃'333' '55555')[1;]
┌→┐
│5│
└─┘


There are ways to rationalize almost anything.  IMO, the IBM nested array
approach is confusing, unpredictable, and renders it a tool of very careful
last resort.

I know there has been debate about this in the past, and I am not looking
to resurrect it.  It is a real shame IBM chose the path it chose.

Blake



On Mon, May 12, 2014 at 5:08 AM, Jay Foad <jay.f...@gmail.com> wrote:

> APL2's Disclose (Dyalog calls it Mix) will convert a vector of vectors
> into a matrix:
>
>       ⊃'timor' 'mortis'
> ┌→─────┐
> ↓timor │
> │mortis│
> └──────┘
>
> Your second application of Disclose is applied to a 1-vector of
> 1-vectors (,⊂,7), so it returns a 1x1 matrix.
>
> Jay.
>
> On 12 May 2014 06:03, Blake McBride <blake1...@gmail.com> wrote:
> >       ⊃⊃⊂,⊂,7
> > ┌→┐
> > ↓7│
> > └─┘
> >       ⍴⊃⊃⊂,⊂,7
> > ┌→──┐
> > │1 1│
> > └───┘
> >
>

Reply via email to