(defun repeat-string (n str)
(if (<= n 1)
str
(concat str (repeat-string (- n 1) str))))
这算是现成的函数吗?
(apply 'concat (make-list 3 "abc"))
;; => "abcabcabc"
4 个赞
或者可以这样:
(mapconcat #'identity (make-list 3 "abc") "")
把最后面的空字符换成别的,比如 "*"
,还可以生成形如 abc*abc*abc
这种字符串
2 个赞
(s-repeat 3 "abc")
=> "abcabcabc"
1 个赞
引入第三方 package 有点杀鸡用牛刀,如果不是有大量跟字符串相关的操作,自己写个函数更实际。
我的意思是,当你需要大量的字符串操作函数,例如:
(string-aaa ...)
(string-bbb ...)
;; ....
(string-xxx ...)
(string-yyy ...)
(string-zzz ...)
自己一一实现的工作量比较大,才有引入第三方包的必要。如果只是一个简单的 repeat
函数,自己写比较可控。