Format: Difference between revisions

Jump to navigation Jump to search
1,993 bytes added ,  06:32, 12 June 2020
Add content for dyadic usage
mNo edit summary
(Add content for dyadic usage)
Line 1: Line 1:
{{Built-in|Format|⍕}} is a [[primitive function]].
{{Built-in|Format|⍕}} is an [[ambivalent]] [[primitive function]] which formats the right [[argument]] into a [[simple]] [[character]] array, optionally following the specification supplied as the left argument. The usage of the left argument varies across implementations.


== Examples ==
== Examples ==


Format in its [[monadic]] form, allows the user to convert [[Array model|arrays]] of any [[type]] into [[simple]] character arrays (for example for concatenation with other character arrays):
=== Monadic form ===
 
Format in its [[monadic]] form allows the user to convert [[Array model|arrays]] of any [[type]] into simple character arrays (for example for concatenation with other character arrays). The result usually matches the interpreter's default display, either by <source lang=apl inline>⎕←</source> or by REPL.
 
<source lang=apl>
<source lang=apl>
       supper ← 10
       supper ← 10
       'I ate ',(⍕supper),' shrimp.'
       'I ate ',(⍕supper),' shrimp.'
I ate 10 shrimp.
I ate 10 shrimp.
      ⎕←DATA←(⍳3) (2 2⍴⍳4) 'TEXT' 100
1 2 3  1 2  TEXT 100
        3 4
      ⍕DATA
1 2 3  1 2  TEXT 100
        3 4
      (⍴DATA) (⍴⍕DATA)
4  2 22
</source>
</source>
It is very powerful when combined with [[Execute]], allowing the user to construct APL code:
 
=== Dyadic form ===
 
The [[dyadic]] form of Format varies across implementations.
 
[[Dyalog APL]] and [[NARS2000]] support column width and the number of decimal places for formatting [[numeric]] arrays. The following example formats the 2-by-3 array with 12 spaces per column, rounded to 2 decimal places:
 
<source lang=apl>
      ⎕←C←2 3⍴ 32.10958 0 ¯101.4914 ¯99.40878 ¯101.872 1001.48173
32.10958    0    ¯101.4914
¯99.40878 ¯101.872 1001.48173
      ⍴C
2 3
 
      12 2⍕C
      32.11        0.00    ¯101.49
      ¯99.41    ¯101.87    1001.48
      ⍴(12 2⍕C)
2 36
</source>{{Works in|[[Dyalog APL]], [[NARS2000]]}}
 
[[APLX]] supports '''Format by example''', which uses string left argument for a rich set of format specifications:
 
<source lang=apl>
<source lang=apl>
      data ← 7
      '55.55' ⍕22.234 1.398 11.00
      ⍎'6 × ',⍕data
22.23 1.4 11
42
      '55.55 5.555 55.55 55'⍕22.234 1.398 0.00 11.0
</source>
22.23 1.398      11
      '555,555,555.55'⍕1234567.89
  1,234,567.89
</source>{{Works in|[[APLX]]}}
 
== External links ==
 
=== Documentation ===
 
* Dyalog [http://help.dyalog.com/latest/#Language/Primitive%20Functions/Format%20Monadic.htm monadic], [http://help.dyalog.com/latest/#Language/Primitive%20Functions/Format%20Dyadic.htm dyadic]
* [http://wiki.nars2000.org/index.php/Symbol_Format NARS2000]
* APLX [http://microapl.com/apl_help/ch_020_020_680.htm monadic], [http://microapl.com/apl_help/ch_020_020_690.htm by specification], [http://microapl.com/apl_help/ch_020_020_700.htm by example]
* J [https://www.jsoftware.com/help/dictionary/d602.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/quoteco NuVoc]
 
{{APL built-ins}}[[Category:Primitive functions]]
{{APL built-ins}}[[Category:Primitive functions]]
trusted
183

edits

Navigation menu