Статически типизированные языки, такие как языки C ++, Java и динамически типизированные языки, такие как Python, различаются только в терминах выполнения типа переменной. Статически типизированные языки имеют статический тип данных для переменной, здесь тип данных проверяется во время компиляции, поэтому отладка намного проще ... тогда как динамически типизированные языки не делают то же самое, проверяется тип данных, который выполняет программу, и, следовательно,
Кроме того, они имеют очень небольшую разницу и могут быть связаны с сильно типизированными и слабо типизированными языками. Строго типизированный язык не позволяет использовать один тип как другой, например. C и C ++ ... тогда как слабо типизированные языки позволяют eg.python
Просто для уточнения (это находится в заключенных в кавычки документах , который Charlie цитирует ) (interactive)
, не только для ограниченных ключом функций, но и ни для какой функции. Без (interactive)
, это можно только назвать программно, не от M-x
(или через привязку клавиш).
РЕДАКТИРОВАНИЕ: Примечание, что просто добавление", (интерактивное)" к функции, не обязательно заставит его проложить себе путь, любой - могло быть многими причинами, функции не являются интерактивными. Обзор, зависимости, параметры, и т.д.
Я подразумеваю, что Вы включаете некоторый код для вещей, необходимо сделать функцию вызываемой, когда связано с ключом - вещи как получение аргумента от CTRL-u.
Взглянули на CTRL-h f interactive
для деталей:
interactive is a special form in `C source code'. (interactive args) Specify a way of parsing arguments for interactive use of a function. For example, write (defun foo (arg) "Doc string" (interactive "p") ...use arg...) to make ARG be the prefix argument when `foo' is called as a command. The "call" to `interactive' is actually a declaration rather than a function; it tells `call-interactively' how to read arguments to pass to the function. When actually called, `interactive' just returns nil. The argument of `interactive' is usually a string containing a code letter followed by a prompt. (Some code letters do not use I/O to get the argument and do not need prompts.) To prompt for multiple arguments, give a code letter, its prompt, a newline, and another code letter, etc. Prompts are passed to format, and may use % escapes to print the arguments that have already been read.
Более того, стоит упомянуть, что основное назначение интерактивного
в интерактивном контексте (например, когда пользователь вызывает функцию с привязкой ключа) позволяет пользователю указывать аргументы функции в противном случае это может быть дано только программно.
Например, рассмотрим функцию sum
, возвращающую сумму двух чисел.
(defun sum (a b)
(+ a b))
Вы можете назвать ее как (sum 1 2)
, но вы может сделать это только в программе на Лиспе (или в REPL). Если вы используете в своей функции интерактивную специальную форму
,