转换字符串,方案中的数据结构列表

时间:2014-06-06 11:24:32

标签: scheme racket

例如我有这样的结构:

(define-struct example (n1 n2)) 

我有这个清单:

(list (make-example 1 3) (make-example 7 9) empty)

我可以把它转换成字符串吗?

2 个答案:

答案 0 :(得分:0)

由于你已经标记了球拍和方案(两种不兼容的语言),我在答案中完全忽略了Scheme。如果您使用#!r5rs或#!r6rs进行编程,我假设您不会标记

#!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有大量格式化选项,可能会派上用场。