循环遍历字符串中的字符,Common Lisp

时间:2013-08-05 19:20:04

标签: string common-lisp

我如何循环播放Common-lisp中的文本字符串中的字符?

这是我想要做的,但在Ruby中:

string = "bacon"

string.each_char do |c|

    putc c

end

2 个答案:

答案 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")