我如何循环播放Common-lisp中的文本字符串中的字符?
这是我想要做的,但在Ruby中:
string = "bacon"
string.each_char do |c|
putc c
end
答案 0 :(得分:24)
(map nil #'princ "bacon")
或
(loop for c across "bacon" do (princ c))
答案 1 :(得分:4)
可以使用loop
来完成对字符串的循环,如下所示:
(let ((string "bacon"))
(loop for idex from 0 to (- (length string)) 1)
do
(princ (string (aref string idex)) ) ))
;=> bacon
;=> NIL
要将string
中的字符作为列表收集,请使用循环中的collect
代替do
,如下所示:
(let ((string "bacon"))
(loop for idex from 0 to (- (length string)) 1)
collect
(princ (string (aref string idex)) ) ))
;=> bacon
;=> ("b" "a" "c" "o" "n")