bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Formatting of large arrays


From: Juergen Sauermann
Subject: Re: [Bug-apl] Formatting of large arrays
Date: Tue, 31 Jan 2017 20:22:27 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Hi,

actually ⎕PW is considered after ⎕CR. ⎕CR of a single line creates a 3 line APL matrix:

            ⎕PW←30
      ⎕PW←30
            29⎕CR ⍳15
┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━┓
┃1 2 3 4 5 6 7 8 9 10 11 12 13
       14 15┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━┛
      ⍴ 29⎕CR ⍳15
3 37

Since 37 > ⎕PW the standard APL output breaks every line of the matrix at a suitable place before ⎕PW (so that, for example,
numbers are not cut in the middle). If I understand you correcly then you would like to it to look like this (just change the font setting in your email client to make it look nicer):

┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 1 2 3 4 5 6 7 8 9 10 11 12 ↲ ┃
┃ ↳   13 14 15                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

The problem with this is that it is not properly working recursively. If a sub-item is also a large matrix and
wrapped at ⎕PW then it wont fit into the containing matrix. An boxed output is normally only used when
you have problems with nested values, so the sub-items are almost always nested.

/// Jürgen


On 01/31/2017 04:00 PM, Elias Mårtenson wrote:
Of course. I don't have any issues with the standard layout. The problem I'm having is with boxed layout.

To take a simple example:

      ⎕PW←30
      29⎕CR ⍳15
┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━┓
┃1 2 3 4 5 6 7 8 9 10 11 12 13
       14 15┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━┛


Here, it seems as though ⎕PW is looked at before the ⎕CR formatting happens. I would much rather it look something like this, just as an example:

┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 1 2 3 4 5 6 7 8 9 10 11 12 ↲ ┃
┃ ↳   13 14 15                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

The formatting looks bad on my email client, but I'm hoping you get the idea. I basically want ⎕CR to know about the print width, and format the output in a way that is manageable. The reason for this is that I usually set ]BOXING when working in APL, and whenever I display arrays with more than, say, 30-40 elements I keep having to turn off ]BOXING just in order to be able to make sense of what I'm seeing.

Regards,
Elias


On 31 January 2017 at 19:32, Juergen Sauermann <address@hidden> wrote:
Hi Elias

like how?

One thing could be to set ⎕PW←1000 but that only avoids the indentation of subsequent lines.
Another way is to X←⍕BIG_MATRIX and then use ↑ and ↓ to display pieces of X. Another simple
trick is to ⍉ the dara before ⎕CRing it.

The general problem is that the way APL2 prints its output has been around for very long, already
since APL times, so changing it today will certainly confuse a number of people (including myself).

/// Jürgen


On 01/31/2017 05:35 AM, Elias Mårtenson wrote:
When printing a one-dimensional array which is wider than ⎕PW, and using a ⎕CR mode which uses box-drawing characters such as 8 or 29, the output is quite unreadable.

For example, with ⎕PW←89 (standard for my Emacs session) this is what I get when printing ⍳100:

      29⎕CR ⍳100
┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3
      3 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 
      61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
       89 90 91 92 93 94 95 96 97 98 99 100┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

There must be a way to primat this in a nicer way.

Regards,
Elias





reply via email to

[Prev in Thread] Current Thread [Next in Thread]