You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 lines
510 B
Racket
13 lines
510 B
Racket
#lang racket/base
|
|
(provide (all-defined-out))
|
|
|
|
(define (to-string x)
|
|
(cond
|
|
[(string? x) x]
|
|
[(or (null? x) (void? x)) ""]
|
|
[(or (symbol? x) (number? x) (path? x) (char? x)) (format "~a" x)]
|
|
;; special handling for procedures, because if a procedure reaches this func,
|
|
;; it usually indicates a failed attempt to use a tag function.
|
|
;; meaning, it's more useful to raise an error.
|
|
[(procedure? x) (error 'pollen "Can't convert procedure ~a to string" x)]
|
|
[else (format "~v" x)])) |