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│ >> > └───┘ >> > >> > > >