Table: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{Built-in|Table|⍪}}, or '''Ravel Items''', is a monadic primitive function which returns a matrix formed by applying Ravel to each major cell of the giv...") |
|||
Line 39: | Line 39: | ||
Table preserves the array's [[Tally]] (the number of major cells). | Table preserves the array's [[Tally]] (the number of major cells). | ||
Table is equivalent to [[reshape|reshaping]] with the shape where all trailing axis lengths have been replaced by their [[product], or alternatively, the tally concatenated to the [[bound]] divided by the tally: | |||
<source lang=apl> | |||
⍪2 3 4 2⍴⎕A | |||
ABCDEFGHIJKLMNOPQRSTUVWX | |||
YZABCDEFGHIJKLMNOPQRSTUV | |||
{⍵⍴⍨(≢⍵),(×/⍴⍵)÷≢⍵}2 3 4 2⍴⎕A | |||
ABCDEFGHIJKLMNOPQRSTUVWX | |||
YZABCDEFGHIJKLMNOPQRSTUV | |||
{⍵⍴⍨(1↑⍴⍵),(×/1↓⍴⍵)}2 3 4 2⍴⎕A | |||
ABCDEFGHIJKLMNOPQRSTUVWX | |||
YZABCDEFGHIJKLMNOPQRSTUV | |||
</source> | |||
== External links == | == External links == |
Revision as of 08:39, 9 July 2020
⍪
|
Table (⍪
), or Ravel Items, is a monadic primitive function which returns a matrix formed by applying Ravel to each major cell of the given array. Table shares its glyph ⍪
with the dyadic function Catenate First.
Examples
For arrays of rank 1 or higher, the result is identical to applying Ravel to major cells. In languages where Rank operator is available, Table is equivalent to ,⍤¯1
.
{⍵(⍴⍵)}⍪5⍴⎕A ┌─┬───┐ │A│5 1│ │B│ │ │C│ │ │D│ │ │E│ │ └─┴───┘ {⍵(⍴⍵)}⍪3 4⍴⎕A ┌────┬───┐ │ABCD│3 4│ │EFGH│ │ │IJKL│ │ └────┴───┘ {⍵(⍴⍵)}⍪2 3 4⍴⎕A ┌────────────┬────┐ │ABCDEFGHIJKL│2 12│ │MNOPQRSTUVWX│ │ └────────────┴────┘
A scalar argument is converted to a 1-by-1 matrix:
{⍵(⍴⍵)}⍪123 ┌───┬───┐ │123│1 1│ └───┴───┘
Properties
Table preserves the array's Tally (the number of major cells).
Table is equivalent to reshaping with the shape where all trailing axis lengths have been replaced by their [[product], or alternatively, the tally concatenated to the bound divided by the tally:
⍪2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV {⍵⍴⍨(≢⍵),(×/⍴⍵)÷≢⍵}2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV {⍵⍴⍨(1↑⍴⍵),(×/1↓⍴⍵)}2 3 4 2⍴⎕A ABCDEFGHIJKLMNOPQRSTUVWX YZABCDEFGHIJKLMNOPQRSTUV
External links
Lessons
Documentation