Character Recipes
Source: character.spq (includes string.spq)
sk_seq
Generates a sequence 0..n-1 (like generate_series).
Type: operator
| Argument | Description |
|---|---|
n | Number of elements to generate |
sk_seq(3)
-- => 0, 1, 2
Implementation:
op sk_seq(n): (
split(sk_pad_left('', '0', n), '')
| unnest this
| count
| values count - 1
)
sk_hex_digits
Returns the 16 hex digit characters as an array.
Type: function
sk_hex_digits()
-- => ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
Implementation:
fn sk_hex_digits(): (
split("0123456789abcdef", "")
)
sk_chr
Converts an integer (0-127) to its ASCII character.
Type: function
| Argument | Description |
|---|---|
code | ASCII code (0-127) |
sk_chr(65)
-- => 'A'
Implementation:
fn sk_chr(code): (
let d = sk_hex_digits() |
hex(f'{d[code/16]}{d[code%16]}')::string
)
sk_alpha
Converts 1-26 to A-Z.
Type: function
| Argument | Description |
|---|---|
n | Number 1-26 |
sk_alpha(3)
-- => 'C'
Implementation:
fn sk_alpha(n): (
sk_chr(64 + n)
)