String: Difference between revisions
Miraheze>Marshall No edit summary |
Miraheze>Marshall mNo edit summary |
||
Line 3: | Line 3: | ||
A single character in quotes, such as <source lang=apl inline>'a'</source>, creates a [[scalar]] character rather than a string. To create a [[singleton]] string the [[ravel]] function is typically used, as in <source lang=apl inline>,'a'</source>. 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 (<source lang=apl inline>''</source>) form an [[empty]] string. | A single character in quotes, such as <source lang=apl inline>'a'</source>, creates a [[scalar]] character rather than a string. To create a [[singleton]] string the [[ravel]] function is typically used, as in <source lang=apl inline>,'a'</source>. 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 (<source lang=apl inline>''</source>) 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 [[⎕UCS]]. | ||
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 functions]]. In [[Flat array model|flat]] APLs these problems are not felt so strongly because [[Box|boxed]] arrays behave more like a simple datatype. | 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 functions]]. In [[Flat array model|flat]] APLs these problems are not felt so strongly because [[Box|boxed]] arrays behave more like a simple datatype. |
Revision as of 14:57, 14 November 2019
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 ⎕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.