Format (Monadic) R←⍕Y
Y
may be any array. R
is a simple character array which will display identically to the display produced by Y
. The result is independent of ⎕PW
. If Y
is a simple character array, then R
is Y
.
Example
+B←⍕A←2 6⍴'HELLO PEOPLE'
HELLO
PEOPLE
B ≡ A
1
If Y
is a simple numeric scalar, then R
is a vector containing the formatted number without any spaces. A floating point number is formatted according to the system variable ⎕PP
. ⎕PP
is ignored when formatting integers.
Examples
⎕PP←5
⍴C←⍕⍳0
0
⍴C←⍕10
2
C
10
⍴C←⍕12.34
5
C
12.34
⍕123456789
123456789
⍕123.456789
123.46
Scaled notation is used if the magnitude of the non-integer number is too large to represent with ⎕PP
significant digits or if the number requires more than five leading zeroes after the decimal point.
Examples
⍕123456.7
1.2346E5
⍕0.0000001234
1.234E¯7
If Y
is a simple numeric vector, then R
is a character vector in which each element of Y
is independently formatted with a single separating space between formatted elements.
Example
⍴C←⍕¯123456 1 22.5 ¯0.000000667 5.00001
27
C
¯1.2346E5 1 22.5 ¯6.67E¯7 5
If Y
is a simple numeric array rank higher than one, R
is a character array with the same shape as Y
except that the last dimension of Y
is determined by the length of the formatted data. The format width is determined independently for each column of Y
, such that:
- the decimal points for floating point or scaled formats are aligned.
- the
E
characters for scaled formats are aligned, with trailing zeros added to the mantissae if necessary. - integer formats are aligned to the left of the decimal point column, if any, or right-adjusted in the field otherwise.
- each formatted column is separated from its neighbours by a single blank column.
- the exponent values in scaled formats are left-adjusted to remove any blanks.
Examples
C←22 ¯0.000000123 2.34 ¯212 123456 6.00002 0
⍴C←⍕2 2 3⍴C
2 2 29
C
22 ¯1.2300E¯7 2.3400E0
¯212 1.2346E5 6.0000E0
0 2.2000E1 ¯1.2300E¯7
2.34 ¯2.1200E2 1.2346E5
If Y
is non-simple, and all items of Y
at any depth are scalars or vectors, then R
is a vector.
Examples
B←⍕A←'ABC' 100 (1 2 (3 4 5)) 10
⍴A
4
≡A
¯3
⍴B
26
≡B
1
A
ABC 100 1 2 3 4 5 10
B
ABC 100 1 2 3 4 5 10
By replacing spaces with ^
, it is clearer to see how the result of ⍕
is formed:
^ABC^^100^^1^2^^3^4^5^^^10
If Y
is non-simple, and all items of Y
at any depth are not scalars, then R
is a matrix.
Example
D←⍕C←1 'AB' (2 2⍴1+⍳4) (2 2 3⍴'CDEFGHIJKLMN')
C
1 AB 2 3 CDE
4 5 FGH
IJK
LMN
⍴C
4
≡C
¯2
D
1 AB 2 3 CDE
4 5 FGH
IJK
LMN
⍴D
5 16
≡D
1
By replacing spaces with ^
, it is clearer to see how the result of ⍕
is formed:
1^^AB^^2^3^^CDE^
^^^^^^^4^5^^FGH^
^^^^^^^^^^^^^^^^
^^^^^^^^^^^^IJK^
^^^^^^^^^^^^LMN^
⎕PP
is an implicit argument of Monadic Format.