4

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

我的问题是我使用 string-append 将几个字符串添加在一起作为调试器的一部分。我的解决方法是检查是否等于#t,然后附加“#t”,并与#f 类似。

我的问题-Scheme 中是否有将布尔值转换为字符串的方法?像 bool->string 这样的东西?

我的代码:

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

3 回答 3

4

这可能会帮助您:

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

这会将任何对象写入字符串端口并返回其字符串值。

> (->string #t)
"#t"
> (->string #f)
"#f"
于 2012-11-09T18:29:03.437 回答
3
(define (boolean-to-string val) (if val "#t" "#f"))

(string-append (number->string count) ":" (boolean-to-string val))
于 2012-11-09T18:35:28.927 回答
3

使用format

> (format "~a" #t)
"#t"
> (format "~a" #f)
"#f"
于 2012-11-09T19:04:17.370 回答