1 Exception utilities
2 Number utilities
3 String utilities
4 Bytes utilities
5 Symbol utilities
6 List utilities
7 PLT 4x hash utilities
8 PLT 3x hash utilities
9 URL utilities
10 Contract utilities
11 File and path utilities
12 Parameter utilities
13 Syntax utilities
14 SRFI19 time utilities
15 Scribble utilities
16 Generators
17 Generators (short names)
18 Pipelines
19 Write-through cache
20 Yieldable procedures
21 Debugging tools
22 Profiling tools
23 Logging tools
On this page:
symbol+ false?
gensym/ interned
symbol-append
symbol-length
symbol-upcase
symbol-downcase
number->symbol
symbol->number
number+ false->symbol+ false
symbol+ false->number+ false
string+ false->symbol+ false
symbol+ false->string+ false
Version: 4.0.0.1

 

5 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

  g324

  > (eq? sym1 (string->symbol (symbol->string sym1)))

  #f

  > (define sym2 (gensym/interned))

  > sym2

  g325

  > (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.