# Singleton: Difference between revisions

Jump to navigation
Jump to search

Miraheze>Adám Brudzewsky m (Text replacement - "<code>" to "<source lang=apl inline>") |
m (Text replacement - "</source>" to "</syntaxhighlight>") Tags: Mobile edit Mobile web edit |
||

(8 intermediate revisions by 5 users not shown) | |||

Line 1: | Line 1: | ||

A singleton is an array with [[bound]] 1. Equivalently, its [[shape]] consists entirely of 1s. It may have any [[rank]]. | A '''singleton''' is an [[Array model|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]] <syntaxhighlight lang=apl inline>42</syntaxhighlight> | |||

* The [[vector]] <syntaxhighlight lang=apl inline>,42</syntaxhighlight> | |||

* The [[matrix]] <syntaxhighlight lang=apl inline>⍪42</syntaxhighlight> | |||

* The three-[[dimension]]al array <syntaxhighlight lang=apl inline>1 1 1⍴42</syntaxhighlight> | |||

* The [[nested]] scalar <syntaxhighlight lang=apl inline>⊂4 2</syntaxhighlight> | |||

Whether an array <syntaxhighlight lang=apl inline>X</syntaxhighlight> is a singleton can be determined with <syntaxhighlight lang=apl inline>1=×/⍴X</syntaxhighlight> or, less efficiently, with <syntaxhighlight lang=apl inline>1=≢,X</syntaxhighlight>. | |||

Every scalar <syntaxhighlight lang=apl inline>X</syntaxhighlight> is a singleton, because <syntaxhighlight lang=apl inline>1=×/⍴X</syntaxhighlight>, or alternatively <syntaxhighlight lang=apl inline>1=≢,X</syntaxhighlight>. | |||

Singletons may be subject to [[singleton extension]]. | Singletons may be subject to [[singleton extension]]. | ||

Only [[simple]] [[Boolean]] singletons are valid representations of logical true and false for the purposes of [[control structure]]s. | |||

{{APL features}}[[Category:Kinds of array]] |

## Latest revision as of 11:00, 11 September 2022

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 [edit]
| |
---|---|

Built-ins | Primitives (functions, operators) ∙ Quad name |

Array model | Shape ∙ Rank ∙ Depth ∙ Bound ∙ Index (Indexing) ∙ Axis ∙ Ravel ∙ Ravel order ∙ Element ∙ Scalar ∙ Vector ∙ Matrix ∙ Simple scalar ∙ Simple array ∙ Nested array ∙ Cell ∙ Major cell ∙ Subarray ∙ Empty array ∙ Prototype |

Data types | Number (Boolean, Complex number) ∙ Character (String) ∙ Box ∙ Namespace ∙ Function array |

Concepts and paradigms | Conformability (Scalar extension, Leading axis agreement) ∙ Scalar function (Pervasion) ∙ Identity element ∙ Complex floor ∙ Total array ordering ∙ Tacit programming (Function composition, Close composition) ∙ Glyph |

Errors | LIMIT ERROR ∙ RANK ERROR ∙ SYNTAX ERROR ∙ DOMAIN ERROR ∙ LENGTH ERROR ∙ INDEX ERROR ∙ VALUE ERROR |