4

Schemeでブール値を文字列に変換する例を見つけるのに苦労しています。

私の問題は、string-append を使用して、デバッガーの一部としていくつかの文字列を一緒に追加することです。私の修正は、#t と等しいかどうかを確認してから、「#t」を追加し、同様に #f を追加することでした。

私の質問 - ブール値を文字列に変換する方法はスキームにありますか? 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 に答える