как вставить данный символ через каждые n символов в данной строке - PullRequest
0 голосов
/ 13 апреля 2019

Я ищу лучший эффективный код Elisp, который может вставлять заданный символ через каждые n символов в заданной строке.

1 Ответ

0 голосов
/ 13 апреля 2019
(defun jea-insert-character-every-n-characters (beginstr insert-char count)
  (let ((blen (length beginstr))
        (result '())
        (c 1)
        (i 0))
    (while (< i blen)
      (push (elt beginstr i) result)
      (if (= c count)
          (progn
            (push insert-char result)
            (setq c 0)))
      (setq i (1+ i))
      (setq c (1+ c)))
    (concat (reverse result))))


(jea-insert-character-every-n-characters "This is the first test" ?X 3)  ;; "ThiXs iXs tXhe XfirXst XtesXt"
(jea-insert-character-every-n-characters "This is the second test" ?X 1) ;; "TXhXiXsX XiXsX XtXhXeX XsXeXcXoXnXdX XtXeXsXtX"
(jea-insert-character-every-n-characters "Boop the snoot" ?z 7)          ;; "Boop thze snootz"

Там может быть более эффективный способ (мой элисп ржавый).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...