2014-03-24 38 views

回答

0

操作预先考虑为(concatenate 'string <strings ...)

所以,你可以用

(cl-loop 
for item in '("abc" "123" "xy") 
collect (concatenate 'string "pre_" item)) 

组成一个更一般的方式实现自己的目标/生成字符串将使用格式

使用格式是

(cl-loop 
for item in '("abc" "123" "xy") 
collect (format nil "pre_~S" item)) 

注意事项使用cl-lib

3

尝试

(mapcar (lambda (c) (concat "pre_" x)) '("abc" "123" "xy")) 
1

在Emacs中没有第三方库使用mapcar函数的函数适用于每个元素该列表如@sds所示。但是,如果您在Elisp中进行大量编程,我建议安装2个第三方库,用于列表操作的为dash.el,用于字符串操作的为s.el。这些库通过一致的命名方案引入了大量的辅助功能。 dash.el也有许多功能的anaphoric版本,这使得代码更加冗长。因此,要在列表中添加前缀为每个字符串,你可以使用--maps-prepends-append为后缀):

(--map (s-prepend "x" it) '("a" "b" "c")) ;; => ("xa" "xb" "xc")