23 Symbol utilities
(require (planet untyped/unlib/symbol)) |
Useful symbol utilities.
(symbol+false? item) → boolean? |
item : any |
Returns #t if item is a symbol or #scheme[#f].
(gensym/interned [base]) → symbol? |
base : (U symbol? string?) = "g" |
Like gensym but returns an interned symbol that can be compared with other symbols using eq?.
Examples: |
> (define sym1 (gensym)) |
> sym1 |
g2140 |
> (eq? sym1 (string->symbol (symbol->string sym1))) |
#f |
> (define sym2 (gensym/interned)) |
> sym2 |
g2141 |
> (eq? sym2 (string->symbol (symbol->string sym2))) |
#t |
(symbol-append sym ) → symbol? |
sym : symbol? |
The symbol equivalent of string-append. Returns an interned symbol.
Examples: |
> (symbol-append 'abc 'def 'ghi) |
abcdefghi |
> (symbol-append 'abc) |
abc |
> (symbol-append) |
|| |
(symbol-length sym) → natural? |
sym : symbol? |
The symbol equivalent of string-length.
Examples: |
> (symbol-length 'AbC123) |
6 |
(symbol-upcase sym) → symbol? |
sym : symbol? |
The symbol equivalent of string-upcase. Returns an interned symbol.
Examples: |
> (symbol-upcase 'AbC123) |
ABC123 |
(symbol-downcase sym) → symbol? |
sym : symbol? |
The symbol equivalent of string-downcase. Returns an interned symbol.
Examples: |
> (symbol-downcase 'AbC123) |
abc123 |
(number->symbol num) → symbol? |
num : number? |
The symbol equivalent of number->string. Returns an interned symbol.
Examples: |
> (number->symbol 123) |
|123| |
> (number->symbol (/ 1 3)) |
|1/3| |
(symbol->number sym) → number? |
sym : symbol? |
The symbol equivalent of string->number. Returns #f if sym has no numeric equivalent.
Examples: |
> (symbol->number '|123|) |
123 |
> (symbol->number 'abc) |
#f |
(number+false->symbol+false num) → (U symbol? #f) |
num : (U number? #f) |
A version of number->symbol that accepts and passes through #f.
(symbol+false->number+false sym) → (U number? #f) |
sym : (U symbol? #f) |
A version of symbol->number that accepts and passes through #f.
(string+false->symbol+false str) → (U symbol? #f) |
str : (U string? #f) |
A version of string->symbol that accepts and passes through #f.
(symbol+false->string+false sym) → (U string? #f) |
sym : (U symbol? #f) |
A version of symbol->string that accepts and passes through #f.