Format: Difference between revisions
mNo edit summary |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Built-in|Format|⍕}} is | {{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 | === 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 <syntaxhighlight lang=apl inline>⎕←</syntaxhighlight> or by REPL. | |||
<syntaxhighlight 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 | |||
</syntaxhighlight> | |||
=== 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: | |||
<syntaxhighlight 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 | |||
</syntaxhighlight>{{Works in|[[Dyalog APL]], [[NARS2000]]}} | |||
[[APLX]] supports '''Format by example''', which uses string left argument for a rich set of format specifications: | |||
<syntaxhighlight lang=apl> | |||
'55.55' ⍕22.234 1.398 11.00 | |||
22.23 1.4 11 | |||
'55.55 5.555 55.55 55'⍕22.234 1.398 0.00 11.0 | |||
22.23 1.398 11 | |||
'555,555,555.55'⍕1234567.89 | |||
1,234,567.89 | |||
</syntaxhighlight>{{Works in|[[APLX]]}} | |||
== See also == | |||
* [[Execute]] | |||
== External links == | |||
=== Tutorials === | |||
* [https://chat.stackexchange.com/rooms/52405/conversation/lesson-10-apl-functions--#41869169 APL Cultivation] | |||
=== Documentation === | |||
* Dyalog [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Format%20Monadic.htm monadic], [https://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]] |
Latest revision as of 21:02, 10 September 2022
⍕
|
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
Monadic form
Format in its monadic form allows the user to convert 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 ⎕←
or by REPL.
supper ← 10 'I ate ',(⍕supper),' 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
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:
⎕←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
APLX supports Format by example, which uses string left argument for a rich set of format specifications:
'55.55' ⍕22.234 1.398 11.00 22.23 1.4 11 '55.55 5.555 55.55 55'⍕22.234 1.398 0.00 11.0 22.23 1.398 11 '555,555,555.55'⍕1234567.89 1,234,567.89
See also
External links
Tutorials
Documentation
- Dyalog monadic, dyadic
- NARS2000
- APLX monadic, by specification, by example
- J Dictionary, NuVoc