(module symbol mzscheme
(require (lib "string.ss" "srfi" "13")
(file "base.ss"))
(provide symbol-append
symbol-upcase
symbol-downcase)
(define (symbol-append . args)
(string->symbol
(string-concatenate
(map (lambda (item)
(cond
[(symbol? item) (symbol->string item)]
[(string? item) item]
[(number? item) (number->string item)]
[(boolean? item) (if item "true" "false")]
[else
(raise-exn exn:fail:unlib
(format "Expected (list-of (U symbol string number boolean)). Received: ~a" args))]))
args))))
(define (symbol-upcase sym)
(string->symbol (string-upcase (symbol->string sym))))
(define (symbol-downcase sym)
(string->symbol (string-downcase (symbol->string sym))))
)