4,505
edits
m (Text replacement - "<source" to "<syntaxhighlight") Tags: Mobile edit Mobile web edit |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
Line 1: | Line 1: | ||
{{Built-in|Zilde|⍬}}, or '''Zero-tilde''' (which the common name is a portmanteau of), is the [[empty]] [[numeric]] [[vector]]. It shares its name with the [[glyph]] used to represent it, a zero [[overstrike|overstruck]] with a tilde. It is the [[shape]] of any [[scalar]], although its own shape is <syntaxhighlight lang=apl inline>,0</ | {{Built-in|Zilde|⍬}}, or '''Zero-tilde''' (which the common name is a portmanteau of), is the [[empty]] [[numeric]] [[vector]]. It shares its name with the [[glyph]] used to represent it, a zero [[overstrike|overstruck]] with a tilde. It is the [[shape]] of any [[scalar]], although its own shape is <syntaxhighlight lang=apl inline>,0</syntaxhighlight>. This is because, as a vector, it has exactly one [[axis]], and this axis has length 0. Zilde is equivalent to <syntaxhighlight lang=apl inline>⍳0</syntaxhighlight> and <syntaxhighlight lang=apl inline>⍴0</syntaxhighlight> and <syntaxhighlight lang=apl inline>0⍴0</syntaxhighlight>. Being [[numeric]], Zilde's [[prototype]] is 0. | ||
The [[glyph]] Zilde is notable in that it represents an array rather than a [[primitive function]] or [[primitive operator]]. This usage was introduced in [[NARS]] and included in [[Dyalog APL]] and many other dialects influenced by these. In most of these APLs it is the only array literal which is produced using its own token rather than being part of a family of array literals like [[numeric literal]]s, [[string]]s, or [[system constant]]s. A similar special literal is [[SHARP APL]]'s [[nil]] (<syntaxhighlight lang=apl inline>∘</ | The [[glyph]] Zilde is notable in that it represents an array rather than a [[primitive function]] or [[primitive operator]]. This usage was introduced in [[NARS]] and included in [[Dyalog APL]] and many other dialects influenced by these. In most of these APLs it is the only array literal which is produced using its own token rather than being part of a family of array literals like [[numeric literal]]s, [[string]]s, or [[system constant]]s. A similar special literal is [[SHARP APL]]'s [[nil]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), which corresponds to <syntaxhighlight lang=apl inline>⊂⍬</syntaxhighlight>, and Dyalog APL's [[namespace]] reference to the root of the [[workspace]] (<syntaxhighlight lang=apl inline>#</syntaxhighlight>). | ||
It should be noted that the empty numeric vector (<syntaxhighlight lang=apl inline>⍬</ | It should be noted that the empty numeric vector (<syntaxhighlight lang=apl inline>⍬</syntaxhighlight>) is distinct from the empty character vector (<syntaxhighlight lang=apl inline>''</syntaxhighlight>) even though they have the same shape and the same elements: | ||
<syntaxhighlight lang=apl> | <syntaxhighlight lang=apl> | ||
∧/⍬='' | ∧/⍬='' | ||
Line 9: | Line 9: | ||
⍬≡'' | ⍬≡'' | ||
0 | 0 | ||
</ | </syntaxhighlight> | ||
This is because <syntaxhighlight lang=apl inline>⍬=''</ | This is because <syntaxhighlight lang=apl inline>⍬=''</syntaxhighlight> itself returns an empty numeric vector, and reducing an empty vector with the [[Logical And]] function (<syntaxhighlight lang=apl inline>∧</syntaxhighlight>) yields the [[identity element]] of Logical And, which is 1. However, [[match]] takes [[empty]] array [[prototype]]s into account as well as shapes and elements, so it indicates that the arrays are different. | ||
Zilde can be used to concisely produce other empty arrays, for example: | Zilde can be used to concisely produce other empty arrays, for example: | ||
* <syntaxhighlight lang=apl inline>⍬⊤⍬</ | * <syntaxhighlight lang=apl inline>⍬⊤⍬</syntaxhighlight> gives a 0-row 0-column numeric matrix, identical to <syntaxhighlight lang=apl inline>0 0⍴0</syntaxhighlight>. | ||
* <syntaxhighlight lang=apl inline>⍪⍬</ | * <syntaxhighlight lang=apl inline>⍪⍬</syntaxhighlight> gives a 0-row 0-column numeric matrix, identical to <syntaxhighlight lang=apl inline>0 1⍴0</syntaxhighlight>. | ||
* <syntaxhighlight lang=apl inline>,¨⍬</ | * <syntaxhighlight lang=apl inline>,¨⍬</syntaxhighlight> gives an empty vector of 1-element numeric vectors, identical to <syntaxhighlight lang=apl inline>0⍴⊂,0</syntaxhighlight>. | ||
* <syntaxhighlight lang=apl inline>⍪¨⍬</ | * <syntaxhighlight lang=apl inline>⍪¨⍬</syntaxhighlight> gives an empty vector of 1-by-1 numeric matrices, identical to <syntaxhighlight lang=apl inline>0⍴⊂,0</syntaxhighlight>. | ||
{{APL built-ins}}{{APL glyphs}}[[Category:Primitive arrays]][[Category:Glyphs]] | {{APL built-ins}}{{APL glyphs}}[[Category:Primitive arrays]][[Category:Glyphs]] |