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.
pollen/pollen/private/to-string.rkt

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)]))