elisp如何打印a到z

elisp

#1

有没有简单的方法可以打印az的?


#2

请先定义下什么是「简单」。笨的方法简单,还是字少的方法简单。

(list "a" "b" "c" ... "z")

(cl-loop for ch from ?a to ?z
         collect (char-to-string ch))

#3
(mapcar #'message (mapcar #'char-to-string (number-sequence ?a ?z)))

#4

Emacs Lisp 中字符类型就是整数类型,比如字符 a 就是整数 97,也就是字符对应的 Unicode Code Point,所以生成 az,一个方法是:

(number-sequence ?a ?z)
;; => (97 98 99 100 101 102 103 104 105 106 107 108 ...)

还可以转换成字符串:

(apply #'string (number-sequence ?a ?z))
;; => "abcdefghijklmnopqrstuvwxyz"

如果要插入当前 Buffer 也可:

(mapc #'insert (number-sequence ?a ?z))

#5

concat 也行,且看起来更简单

(concat (number-sequence ?a ?z))
;; => "abcdefghijklmnopqrstuvwxyz"