#lang racket/base (require racket/string "utils.rkt" ) (provide symbol?? symstr symstr-eval is-if?) (define (symbol?? a) (let ((r (symbol? a))) r)) (define (symstr x) (cond ((list? x) (string-append "[ " (string-join (map symstr-eval x) ", ") " ]")) ((vector? x) (symstr (vector->list x))) (else (let ((r (format "~a" x))) (let ((r* (if (string-prefix? r "(quote") (let ((s (substring r 7))) (substring s 0 (- (string-length s) 1))) r))) r*))) ) ) (define (symstr-eval x) (cond ((string? x) (format "\"~a\"" (esc-double-quote x))) (else (symstr x)))) (define (is-if? x) (displayln x) (eq? x 'if))