我想创建一个ELISP函数,它会提示用户输入一个数字n,然后不断提示用户n次字符串。理想情况下,我希望将所有这些字符串放入列表中。这是我到目前为止所拥有的。显然,我所拥有的东西不起作用,但它可能有助于澄清我想要做的事情。
(defun prompt-user-n-times (n)
"Prompt user n time for strings and append strings to list"
(interactive "nHow many strings: ")
(while (> n 0)
(append newlist (interactive "sGive me input: "))
(setq n (- n 1))
))
感谢。
答案 0 :(得分:3)
只需为新列表定义绑定:
(defun prompt-user-n-times (n)
"Prompt user n time for strings and append strings to list"
(interactive "nHow many strings: ")
(let ((newlist ()))
(while (> n 0)
(setq newlist (append newlist (list (read-string "Give me input: "))))
(setq n (- n 1)))
newlist))
有几点评论:互动只是在defun
的开头
功能,一个使用其他提示功能,就像简单
read-string
。 append
要求两个列表,因此返回字符串
应read-string
函数
list
放入列表中