Emacs Lisp: Wie verwende ich interaktiv (für bedingte Argumente)?

Ich möchte dem Benutzer eine zweite Frage stellen, abhängig von der Antwort auf die erste.

(defun something (a b)
  (interactive
   (list
    (read-number "First num: ")
    (read-number "Second num: ")))
  (message "a is %s and b is %s" a b))

Also brauche ich eine Möglichkeit, um die Eingabewerte zu testen:

(defun something-else (a &optional b)
  (interactive
   (list
    (read-number "First num: ")
    (if (< a 2)
        (read-number "Second num: "))))
  (message "a is %s" a))

Aber

if: Symbol's value as variable is void: a

Frage: Wie kann ich verwendeninteractive auf eine wirklich interaktive Art und Weise?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage