The only way to make it more consistent is to make behaviours that today
are allowed into an error.

What would you expect ⊃'333' '55555' to do?

Regards,
Elias


On 12 May 2014 22:43, Blake McBride <blake1...@gmail.com> wrote:

> 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