Formatting 打印原始控制字符,同时在输出(Racket)中保留字符串分隔符
我的球拍里有一张这样的清单:Formatting 打印原始控制字符,同时在输出(Racket)中保留字符串分隔符,formatting,scheme,racket,double-quotes,quotation-marks,Formatting,Scheme,Racket,Double Quotes,Quotation Marks,我的球拍里有一张这样的清单: '(some-symbol "some\ntext\ngoes in\nhere") 我想将其打印出来,以便像\n这样的控制字符被转换为它们的实际值,在本例中是换行符。但是,我还希望字符串的引号(即分隔符)保留在输出a lawrite或print中。display功能已经完成了我想要的第一部分,但是它去掉了没有转义的引号,如\“。例如: racket@> (displayln '(some-symbol "some\ntext\ngoes in\nher
'(some-symbol
"some\ntext\ngoes in\nhere")
我想将其打印出来,以便像\n
这样的控制字符被转换为它们的实际值,在本例中是换行符。但是,我还希望字符串的引号(即分隔符)保留在输出a lawrite
或print
中。display
功能已经完成了我想要的第一部分,但是它去掉了没有转义的引号,如\“
。例如:
racket@> (displayln '(some-symbol "some\ntext\ngoes in\nhere")) ;; I want the linefeeds as produced here
(some-symbol some
text
goes in
here)
racket@> (println '(some-symbol "some\ntext\ngoes in\nhere")) ;; But I also want the quotation marks as preserved here
'(some-symbol "some\ntext\ngoes in\nhere")
racket@>
有没有办法在Racket中获得这种输出效果,而不转义字符串分隔符,如
\“
?另外,我不想在输出中使用列表前面的“
字符。不清楚您到底想要什么,所以让我们在那里放一个稻草人,让您四处乱闯:
#lang racket
(require rackunit)
;; find every string in an s-expression, add quotes to it:
(define (add-quotes s)
(cond [(list? s)
(map add-quotes s)]
[(string? s)
(string-append "\"" s "\"")]
[else s]))
(check-equal? (add-quotes '((a b "cde") (("g") f)))
'((a b "\"cde\"") (("\"g\"") f)))
;; display s with quotes around strings:
(define (funny-display s)
(display (add-quotes s)))
不是你想要的吗?这正是我想要的;非常感谢。对不起,我的问题不是很清楚。