Tally
≢

Tally (≢
) or Count 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.
Contents
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 higherrank 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 A with the name "count" and symbol #
. The same notation was carried forward to A+, as well as J following Arthur Whitney's suggestion. The primitive was present in NARS2000 by 2010, with the name "Tally" and symbol >
^{[1]}. The symbol ≢
for Tally was introduced in Dyalog APL 14.0, and quickly adopted by NARS2000. It was later added to GNU APL and has been included in many recent APLs based on Dyalog, such as ngn/apl, dzaima/APL, and APL\iv.
External links
Lessons
Documentation
References
APL builtins [edit]  

Primitive functions  
Scalar  
Monadic  Conjugate ∙ Negate ∙ Signum ∙ Not ∙ Roll ∙ Type  
Dyadic  Add ∙ Subtract ∙ Equal to (Xnor) ∙ Not Equal to (Xor) ∙ Minimum ∙ Maximum ∙ Comparison functions  
NonScalar  
Structural  Shape ∙ Reshape ∙ Tally ∙ Depth ∙ Ravel ∙ Reverse ∙ Raze ∙ Mix ∙ Cut (K) ∙ Pair ∙ Replicate ∙ Partitioned Enclose  
Selection  Take ∙ Drop ∙ Unique ∙ Identity ∙ Select  
Selector  Index generator ∙ Interval Index ∙ Indices  
Computational  Match ∙ Not Match ∙ Nub Sieve ∙ Format ∙ Execute  
Primitive operators  Monadic  Each ∙ Replicate  
Dyadic  Reverse Compose  
Quad names  
Arrays  Index origin ∙ Migration level  
Functions  
Operators  
Other  Zilde ∙ High minus ∙ Function axis 