2

ユーザーに数字 n を求めるプロンプトを表示し、続いてユーザーに文字列を n 回連続してプロンプトする ELISP 関数を作成したいと思います。理想的には、これらすべての文字列をリストに入れたいと思います。これが私がこれまでに持っているものです。明らかに、私が持っているものは機能しませんが、やりたいことの種類を明確にするのに役立つかもしれません.

(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))
))

ありがとう。

4

1 に答える 1

4

新しいリストのバインディングを定義するだけです。

(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-stringappend2つのリストを要求するので、によって返される文字列は関数read-stringによってリストに入れられる必要がありますlist

于 2013-02-19T06:40:58.363 に答える