2016-11-13 12 views
0
#lang racket 
(struct result (q) #:mutable) 

(define RESULT (result '())) 

(define (insert-result! result val) 
    (set-result-q! result (cons val (result-q result)))) 

(insert-result! RESULT "hello") 
(insert-result! RESULT "wrold") 
(print (result-q RESULT)) 

(define (iter l) 
`(div ((class "result")) 
    ,(for ([i (result-q l)]) 
     `(p ,i)))) 

(iter RESULT) 

私はxexprを取得しようとしています。 RESULTはコード実行後に '("wrold" "hello")にする必要があります。その後、私は出力を生成したいiter機能に:どういうわけかリストをxexprに変換するには?

'(div ((class "result")) (p "world") (p "hello"))

上記のコードではなく、私にこの'(div ((class "result")) #<void>)を与えます。この問題をどのように修正すればよいですか?

答えて

1

あなたが使用する必要があります。

,@(for/list ([i (result-q l)]) 
    `(p ,i)) 

お知らせリストに結果を収集するためのスプライシングにunquoteため,@の使用だけでなく、for/list

関連する問題