`interactive` spec of an Emacs-Lisp command (function invocable using `M-x` or a key binding)

Emacs-Lisp functions are made interactive (i.e., commands, which are invocable usingM-x or a key binding) by placing an interactive spec (a special form) in the function definition. The spec provides the actual arguments to the command. The argument to the spec is either a literal string with predefined codes) or a sexp that is evaluated to return the list of actual arguments.