Scheme - 将布尔值转换为字符串?

时间:2012-11-09 18:24:41

标签: scheme boolean racket

我很难找到一个在布局中将布尔值转换为字符串的示例。

我的问题是我使用string-append作为调试器的一部分添加几个字符串。 我的解决方法是检查是否等于#t,然后追加“#t”,和#f一样。

我的问题 - 在Scheme中有一个将bool转换为字符串的方法吗?像bool-> string?

我的代码:

(if (equal? val #t)
                       (string-append (number->string count) ":" "#t")    
                       (string-append (number->string count) ":" "#f")    )

3 个答案:

答案 0 :(得分:3)

这可能会对您有所帮助:

(define (->string x)
  (call-with-output-string
   (lambda (out)
     (display x out))))

任何对象写出到字符串端口并返回其字符串值。

> (->string #t)
"#t"
> (->string #f)
"#f"

答案 1 :(得分:3)

(define (boolean-to-string val) (if val "#t" "#f"))

(string-append (number->string count) ":" (boolean-to-string val))

答案 2 :(得分:3)

使用format

> (format "~a" #t)
"#t"
> (format "~a" #f)
"#f"