【发布时间】:2016-11-16 00:27:13
【问题描述】:
为什么列表集在 Racket 的以下功能中不起作用:
(define (trimlist sl)
(let ((num 0) (ss "") )
(set! num (length sl))
(for ((i num))
(println i)
(set! ss (list-ref sl i))
(println ss)
(set! ss (string-trim ss))
(println ss)
(list-set sl i ss ) )
sl ))
> (trimlist (list " a" "b " " c "))
0
" a"
"a"
1
"b "
"b"
2
" c "
"c"
'(" a" "b " " c ")
println 语句显示每个元素都被正确修剪,但返回的列表仍然有未修剪的项目。修剪后的元素不会替换列表中的原始元素。
list-set 的文档在这里:https://docs.racket-lang.org/reference/pairs.html#%28def._%28%28lib._racket%2Flist..rkt%29._list-set%29%29
问题出在哪里,我该如何解决?
【问题讨论】: