String: Difference between revisions
Miraheze>Marshall No edit summary |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
In APL, a '''string''' is a [[vector]] of [[ | {| class=vertical-navbox style="float:right; font-size:500%; margin:0 1ex;" | ||
|<code><nowiki>'abc'</nowiki></code> | |||
|} | |||
In APL, a '''string''' is a [[vector]] of [[character]]s. Strings are written using single quotes, for example <syntaxhighlight lang=apl inline>'string'</syntaxhighlight>. | |||
A single character in quotes, such as < | A single character in quotes, such as <syntaxhighlight lang=apl inline>'a'</syntaxhighlight>, creates a [[scalar]] character rather than a string. To create a [[singleton]] string the [[ravel]] function is typically used, as in <syntaxhighlight lang=apl inline>,'a'</syntaxhighlight>. Ravelling a quoted literal always produces a string. This consideration only applies to exactly one character (or two quotes representing a single character, as described in the next paragraph); quotes with no characters between them (<syntaxhighlight lang=apl inline>''</syntaxhighlight>) form an [[empty]] string. | ||
APL's string notation is very simple and includes only one [ | APL's string notation is very simple and includes only one [[wikipedia:Escape sequence|escape]]: two adjacent single quotes within a string stand for one single quote character rather than ending the string and starting a new one. To [[strand]] strings together, put spaces between them. A newline character within a string produces an error. To produce newlines or other non-printing characters which would be inconvenient to include in the source, use an alternative [[character]] creation mechanism, such as [[Unicode Convert]] (<syntaxhighlight lang=apl inline>⎕UCS</syntaxhighlight>). | ||
Some users of [[Nested array model|nested]] APLs have proposed a dedicated string datatype to allow strings to be manipulated as a single entity, and in particular, to allow them to be compared with [[scalar | Some users of [[Nested array model|nested]] APLs have proposed a dedicated [[string datatype]] to allow strings to be manipulated as a single entity, and in particular, to allow them to be compared with [[scalar function]]s. In [[Flat array model|flat]] APLs these problems are not felt so strongly because [[box]]ed arrays behave more like a simple datatype. | ||
== External links == | == External links == | ||
[ | * [[wikipedia:String (programming)|String (programming)]] | ||
{{APL features}}[[Category:Kinds of array]] |
Latest revision as of 10:52, 11 September 2022
'abc'
|
In APL, a string is a vector of characters. Strings are written using single quotes, for example 'string'
.
A single character in quotes, such as 'a'
, creates a scalar character rather than a string. To create a singleton string the ravel function is typically used, as in ,'a'
. Ravelling a quoted literal always produces a string. This consideration only applies to exactly one character (or two quotes representing a single character, as described in the next paragraph); quotes with no characters between them (''
) form an empty string.
APL's string notation is very simple and includes only one escape: two adjacent single quotes within a string stand for one single quote character rather than ending the string and starting a new one. To strand strings together, put spaces between them. A newline character within a string produces an error. To produce newlines or other non-printing characters which would be inconvenient to include in the source, use an alternative character creation mechanism, such as Unicode Convert (⎕UCS
).
Some users of nested APLs have proposed a dedicated string datatype to allow strings to be manipulated as a single entity, and in particular, to allow them to be compared with scalar functions. In flat APLs these problems are not felt so strongly because boxed arrays behave more like a simple datatype.
External links
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 ∙ Array ordering (Total) ∙ Tacit programming (Function composition, Close composition) ∙ Glyph ∙ Leading axis theory ∙ Major cell search ∙ First-class function |
Errors | LIMIT ERROR ∙ RANK ERROR ∙ SYNTAX ERROR ∙ DOMAIN ERROR ∙ LENGTH ERROR ∙ INDEX ERROR ∙ VALUE ERROR ∙ EVOLUTION ERROR |