在Racket中强制执行strurct-constructor评估

时间:2017-05-24 19:21:01

标签: structure racket lazy-evaluation

通过以下代码:

(struct int (num) #transparent)

(list (int 3) (int 5)) ;; case-1
'((int 3) (int 5))     ;; case-2

案例-1打印(#(struct:int 3) #(struct:int 5)), 但案例-2打印((int 3) (int 5))

如何处理第二个struct:int list

1 个答案:

答案 0 :(得分:1)

表达式:

'((int 3) (int 5))

或多或少等同于:

(list (list 'int 3)  (list 'int 5))

因此,如果你想创建一个结构作为元素的列表,可以直接使用list或者......你可以使用quasiquote:

`(,(int 3) ,(int 5))