例如我有这样的结构:
(define-struct example (n1 n2))
我有这个清单:
(list (make-example 1 3) (make-example 7 9) empty)
我可以把它转换成字符串吗?
答案 0 :(得分:0)
由于你已经标记了球拍和方案(两种不兼容的语言),我在答案中完全忽略了Scheme。如果您使用#!r5rs或#!r6rs进行编程,我假设您不会标记racket。
#!racket
(define (any->string any)
(with-output-to-string (lambda () (write any))))
(any->string '(Hello world)) ; ==> "(Hello world)"
答案 1 :(得分:0)
球拍已经有~ a程序可以做到这一点:
> (~a '(Hello world))
"(Hello world)"
> (define-struct example (n1 n2) #:transparent)
> (define l (list (make-example 1 3) (make-example 7 9) empty))
> (~a l)
"(#(struct:example 1 3) #(struct:example 7 9) ())"
另请注意,~a
有大量格式化选项,可能会派上用场。