Tally: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Marshall
(Created page with "{{Built-in|Tally|≢}} is a primitive monadic function which returns the number of major cells in its argument. The Tally of an array is als...")
 
Miraheze>Marshall
Line 36: Line 36:
== History ==
== History ==


Tally was introduced in [[J]] using the symbol <source lang=j inline>#</source>, and adopted in APL by [[Dyalog APL 14.0]]. It was later added to [[NARS2000]] and has been included in many recents APLs based on Dyalog, such as [[ngn/apl]], [[dzaima/APL]], and [[APL\iv]].
Tally was introduced in [[J]] using the symbol <source lang=j inline>#</source>, and adopted in APL by [[Dyalog APL 14.0]]. It was later added to [[NARS2000]] and [[GNU APL]] and has been included in many recents APLs based on Dyalog, such as [[ngn/apl]], [[dzaima/APL]], and [[APL\iv]].


== External links ==
== External links ==

Revision as of 09:42, 19 November 2019

Tally () is a primitive monadic function which returns the number of major cells in its argument. The Tally of an array is also the first element of its shape, or 1 if it is a scalar (since a scalar is its own major cell by convention). Tally counts the first axis rather than the last because the number of major cells is more useful in leading axis theory.

Examples

Tally can compute the length of a numeric vector or string.

      ≢⍳12
12
      ≢'string'
6

It gives the length of the first axis in a higher-rank array. Tally applied to an array's shape gives its rank.

      ≢5 4 3 2⍴1 'b' 3 'd'  
5
      ≢⍴5 4 3 2⍴1 'b' 3 'd'
4

The Tally of a scalar is always 1.

      ≢3.14
1

Description

Tally returns the length of the first axis of its argument if it has any axes (that is, if it is not a scalar), and 1 otherwise. This can be modelled easily with Shape and First:

Tally ← {⊃(⍴⍵),1}

An alternative implementation is to count the major cells by turning each into a scalar 1 with the Rank operator, then adding them up:

Tally ← +⌿ {1}⍤¯1

History

Tally was introduced in J using the symbol #, and adopted in APL by Dyalog APL 14.0. It was later added to NARS2000 and GNU APL and has been included in many recents APLs based on Dyalog, such as ngn/apl, dzaima/APL, and APL\iv.

External links

Lessons

Documentation