(return [<выражение>])
При использовании функции return в правой части правила текущий фокус удаляется из стека фокусов. Эта функция не может быть указана в качестве аргументов другой функции. Допустимо применение return в функциях, выполняющих действия над набором объектов (do-for-instance, do-for-all-instances и delayed-do-for-all-instances). Однако в этом случае она выполняется, только если подобные действия допустимы окружением соответствующей функции.
Функция break прерывает текущую итерацию циклов while и loop-for-count, работу функций progn и progn$ и некоторых функций, выполняющих действия над набором объектов (do-for-instance, do-for-all-instances и delayed-do-for-all-instances). Функция break не должна использоваться в рамках функции progn, если это является недопустимым, исходя из внешнего контекста progn. Кроме того, функция break не должна указываться в качестве параметра обращения к другой функции.
Определение 15.60. Функция break
(break)
Функция switch реализует оператор множественного ветвления и позволяет связать определенную группу действий (среди нескольких подобных групп) с некоторой заданной величиной. При выборе этой величины выполняет связанные с ней действия.
|
|
Определение 15.61. Функция switch
(switch <выражение>)
<условие-ветвления>*
[<условие>])
<условие-ветвления>::= (case <выражение> then <действие>*)
<действия-по-умолчанию>::= (default действие>*)
Для эффективного применения функции switch необходимо наличие, по крайней мере, трех альтернативных групп действий, зависящих от заданного условного выражения.
Функция switch в первую очередь проводит вычисление аргумента <выражение>, а затем сравнивает его со всеми условиями ветвления по очереди. Если значение заданного выражения совпадает с одним из условий ветвления, выполняются соответствующие действия, и работа функции завершается. Если совпадений обнаружить не удалось, функция возвращает результат последнего сеанса выбора (если таковой имеется) или значение false. Ниже приведен пример использования функции switch (см. также рис. 15.21).