If that is true, I can sure live with and respect that.  What would the
idiom be to have enclose do nothing but add a single layer of boxing to ANY
data?  What would the idiom be to have disclose do nothing more than remove
a single layer of a single boxed item?  (Both without making any
modifications to the data, and never combining them.)

If I know the answer to those, I could do a lot with it.

Thanks.

Blake



On Mon, May 12, 2014 at 10:09 AM, Juergen Sauermann <
juergen.sauerm...@t-online.de> wrote:

>  Hi Blake,
>
> maybe what you are after is ⊃¨ instead of ⊃:
>
>       ⊃'333' '55555'
>
> 333
> 55555
>
>       ⊃¨'333' '55555'
>  333 55555
>
> I guess they thought 'why do something that already exists by other means
> (ie. ⊃¨) and do something different (ie. ⊃)
> that could be useful elsewhere'.
>
> /// Jürgen
>
>
>
> On 05/12/2014 04:43 PM, Blake McBride 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