为什么不使用 display 进行输入时,使用下面的代码得到的结果不同?

Why is the result using the code below different when display is not used for input?

方案规划

此代码的输出与使用显示的输入不同。如何使用交互式 window?

中的输入使其工作

输入:(list-replace `(1 3 5 15 9))

输出:(shared ((-2- "T-ICE")) (list 2 -2- 7 -2- 8 "T"))

使用(display(list-replace `(1 3 5 15 9))
输出:(1 "T" "ICE" "T-ICE" "T")

(define (list-replace li)
(cond
((null? li) li)

((and (= (modulo (car li) 3) 0) (= (modulo (car li) 5) 0)) (cons "T-ICE" (list-replace(cdr li))))

((= (modulo (car li) 3) 0) (cons "T" (list-replace(cdr li))))

((= (modulo (car li) 5) 0) (cons "ICE" (list-replace(cdr li))))

(else (cons (car li) (list-replace(cdr li))))))

解决方法是转到 "Languages menu",然后 select "Choose Language ..."。在对话框的底部,单击 "Show Details",然后在 "Output Syntax" 右侧的组,取消选中标记为“显示 分享价值观”。