Differences between revisions 2 and 3
Revision 2 as of 2008-09-24 16:47:09
Size: 3526
Editor: SimonMarsden
Comment:
Revision 3 as of 2008-10-01 08:57:40
Size: 3539
Editor: SimonMarsden
Comment: Fix font problem
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
Here we give details of three common functions: {{{}}} ('''Format''' or '''Thorn'''), {{{¸}}} ('''Alpha''') and the APLX system function {{{ŒFMT}}}. They can be used purely to convert numeric data to characters. The converted data looks the same, but has the properties associated with character data. Here we give details of three common functions: {{{}}} ('''Format''' or '''Thorn'''), {{{}}} ('''Alpha''') and the APLX system function {{{FMT}}}. They can be used purely to convert numeric data to characters. The converted data looks the same, but has the properties associated with character data.
Line 24: Line 24:
      6 2 1341.82921       6 2 1341.82921
Line 29: Line 29:
{{{•}}} and {{{¸}}} have the optional extra facility of allowing you to use editing characters to define a 'picture' of how data is to look when displayed, known as format-by-example. The picture is the left argument and the data the right. {{{⍕}}} and {{{⍺}}} have the optional extra facility of allowing you to use editing characters to define a 'picture' of how data is to look when displayed, known as format-by-example. The picture is the left argument and the data the right.
Line 31: Line 31:
Here is an example of {{{}}} used to format by example: Here is an example of {{{}}} used to format by example:
Line 34: Line 34:
      L ' 55 @ $55.50 EA'
      R 3 2½3 4.99 7 7.45 12 .5
      LR
      L ' 55 @ $55.50 EA'
      R 3 23 4.99 7 7.45 12 .5
      LR
Line 41: Line 41:
The following example shows the values in a 4-row 2-column matrix called {{{TAB}}}. It then shows the {{{¸}}} function applied to this matrix and its effect on {{{TAB}}}: The following example shows the values in a 4-row 2-column matrix called {{{TAB}}}. It then shows the {{{}}} function applied to this matrix and its effect on {{{TAB}}}:
Line 50: Line 50:
      '$$Z,ZZ9.99 DR ' ¸ TAB       '$$Z,ZZ9.99 DR ' TAB
Line 56: Line 56:
{{{ŒFMT}}} takes the process a stage further, allowing a variety of picture phrases, qualifiers and decorators to be supplied as the format specification. {{{FMT}}} takes the process a stage further, allowing a variety of picture phrases, qualifiers and decorators to be supplied as the format specification.
Line 59: Line 59:
      'B K2 G< ZZ9 DOLLARS AND 99 CENTS>' ŒFMT 8.23 12.86 0 2.52       'B K2 G< ZZ9 DOLLARS AND 99 CENTS>' FMT 8.23 12.86 0 2.52
Line 71: Line 71:

 

Formatting

The default way in which APL displays results may not always suit your requirements. Obviously you can do a certain amount by using functions like size to reshape data, or catenate to join data items, but for many applications you may want much more sophisticated facilities. You may, for example, want to insert currency signs and spaces in numeric output, or produce a neatly formatted financial report, or specify precisely the format in which numbers are displayed.

Formatting

APL includes flexible ways of formatting data. Formatting functions both:

  • convert the format of data from numbers to characters
  • allow you to specify how (converted) numeric data will be laid out.

The formatting functions available will depend on which APL interpreter you are using, so the following is only a guide. You will need to check your APL's documentation for available formatting functions.

Here we give details of three common functions: (Format or Thorn), (Alpha) and the APLX system function ⎕FMT. They can be used purely to convert numeric data to characters. The converted data looks the same, but has the properties associated with character data.

Additionally, each function lets you specify how many character positions a number should occupy when it's displayed, and how many of these positions are available for decimal places. The number of characters and number of decimal places are specified in the left argument:

      6 2 ⍕ 1341.82921
341.83

(Note that since the number had to be truncated to fit the character positions allowed, it was first rounded to make the truncated representation as accurate as possible.)

and have the optional extra facility of allowing you to use editing characters to define a 'picture' of how data is to look when displayed, known as format-by-example. The picture is the left argument and the data the right.

Here is an example of used to format by example:

      L ← ' 55 @ $55.50 EA'
      R ← 3 2⍴3 4.99 7 7.45 12 .5
      L⍕R
  3 @ $ 4.99 EA
  7 @ $ 7.45 EA
 12 @ $  .50 EA

The following example shows the values in a 4-row 2-column matrix called TAB. It then shows the function applied to this matrix and its effect on TAB:

      TAB
1096.2   ¯416.556
 296.974 1085.238
¯811.188  844.074
¯745.416  153.468
 
      '$$Z,ZZ9.99 DR         ' ⍺ TAB
 $1,096.20               $416.56 DR
   $296.97             $1,085.24
   $811.19 DR            $844.07
   $745.42 DR            $153.47

⎕FMT takes the process a stage further, allowing a variety of picture phrases, qualifiers and decorators to be supplied as the format specification.

      'B K2 G< ZZ9 DOLLARS AND 99 CENTS>' ⎕FMT 8.23 12.86 0 2.52
   8 DOLLARS AND 23 CENTS
  12 DOLLARS AND 86 CENTS
   2 DOLLARS AND 52 CENTS


< Back                              Contents                              Next >

   

CategoryAboutApl  CategoryGuides  CategoryAplx

LearnApl/FormattingOutput (last edited 2017-02-16 19:43:29 by KaiJaeger)