Singleton: Difference between revisions

A singleton is an array with bound 1. Equivalently, its shape consists entirely of 1s. It may have any rank. For example, all the following are singletons:

• The scalar `42`
• The vector `,42`
• The matrix `⍪42`
• The three-dimensional array `1 1 1⍴42`
• The nested scalar `⊂4 2`

Whether an array `X` is a singleton can be determined with `1=×/⍴X` or, less efficiently, with `1=≢,X`.

Every scalar `X` is a singleton, because `1=×/⍴X`, or alternatively `1=≢,X`.

Singletons may be subject to singleton extension.

Only simple Boolean singletons are valid representations of logical true and false for the purposes of control structures.

APL features 
Built-ins Primitives (functions, operators) ∙ Quad name
Array model ShapeRankDepthBoundIndex (Indexing) ∙ AxisRavelRavel orderElementScalarVectorMatrixSimple scalarSimple arrayNested arrayCellMajor cellSubarrayEmpty arrayPrototype
Data types Number (Boolean, Complex number) ∙ Character (String) ∙ BoxNamespaceFunction array
Concepts and paradigms Conformability (Scalar extension, Leading axis agreement) ∙ Scalar function (Pervasion) ∙ Identity elementComplex floorTotal array orderingTacit programming (Function composition, Close composition) ∙ Glyph
Errors LIMIT ERRORRANK ERRORSYNTAX ERRORDOMAIN ERRORLENGTH ERRORINDEX ERRORVALUE ERROR