En el aspecto y la programación funcional, el consejo describe una clase de funciones que modifiquen otras funciones cuando se funcionan estes 3ultimo; es cierta función, método o el procedimiento que debe para ser aplicado en un dado ensambla el punto de un programa.
Lo que sigue se toma de una discusión en la lista de personas a quienes se mandan propaganda aosd-discute. El Pascal Constanza contribuyó el siguiente:
El consejo del término vuelve al del término que aconseja según lo introducido por el Warren Teitelman en su tesis del PhD en 1966. Aquí está una cotización del capítulo 3 de su tesis: el consejo del
l es la innovación básica en el modelo, y en el sistema EXPERIMENTAL. El consejo consiste en el insertar de nuevos procedimientos en lo que sea de los puntos de la entrada o de salida a un procedimiento particular (o a la clase de procedimientos). Los procedimientos insertados se llaman " procedures" del consejo; o simplemente " advice". puesto que cada pedazo de consejo es sí mismo un procedimiento, del
l tiene sus propias entradas y salidas. Particularmente, esto significa que la ejecución del consejo puede causar el procedimiento que se modifica para ser puenteada totalmente, e., especificando como salida del consejo uno de las salidas del procedimiento original; o el consejo puede cambiar variables esenciales y continuar con el cómputo para ejecutar el procedimiento original, pero con variables modificadas. Finalmente, el consejo puede no alterar la ejecución o afectar al procedimiento original en absoluto, e., puede realizar simplemente un cierto cómputo adicional tal como impresión un mensaje o una historia de la grabación. Puesto que el consejo puede ser condicional, la decisión en cuanto a cuál debe ser hecha puede depender de los resultados del cómputo hasta ese punto. el
l la ventaja principal del consejo es que la necesidad de usuario que se tratará sobre los detalles de los cambios reales en su programa, ni la representación interna del consejo. Él puede tratar el procedimiento para ser _as aconsejados al unit_, un solo bloque, y realiza cambios a él sin la preocupación por los detalles de este bloque. Esto se puede poner en contraste con corregir en cuál debe ser competente el programador de la estructura interna del procedimiento.
" Advising" encontró su manera en el BBN para balbucear y más adelante en Interlisp de Xerox PARC.
También encontró su manera a los sabores, la primera extensión orientada al objeto de balbucear convertido en el MIT. Fueron incluidos bajo noción de la combinación del método. Ver, por ejemplo, AIM-602 en el 1 del de http://www.edu/research/publications/browse/0600browse.shtml Desde método la combinación y las macros son estrechamente vinculadas, él es también interesantes observar que el primer sistema macro fue descrito en 1963, tres años antes de la tesis del PhD de Warren Teitelman. Ver AIM-57 en el 2 Otro ejemplo de Emacs; suponer después de que uno corrigiera una palabra deletreada mal a través Ispell, uno quiso al re-spellcheck el almacenador intermediario entero. M-$ no ofrece ninguna tal funcionalidad, incluso si la palabra spellchecked se utiliza mil veces. Un podría rastrear la definición de .
Uso
El uso práctico de las funciones del consejo es generalmente modificar o ampliar de otra manera el comportamiento de las funciones que no pueden ser modificadas o ser ampliadas fácilmente. El Emacs de Emacspeak - el addon hace el uso extenso de consejo: debe modificar millares de módulos existentes de Emacs y funciona tales que puede producir la salida audio para la correspondencia oculta a la presentación visual, pero sería obviamente infeasible copiar todos y redefinirlos para producir salida audio además de sus salidas normales; Así pues, los programadores de Emacspeak definen las funciones del consejo que funcionan antes y después. ispell-word, copiarla en su .emacs, y escribir la funcionalidad adicional, pero éste es broken-ness aburrido, propenso (la versión de .emacs saldrá de la sinc. con el módulo real de Ispell ELISP, si incluso se resuelve de su hogar). Qué uno quiere es bastante simple: apenas funcionar con otro comando después de ispell-word funciona. Usar funciones del consejo, puede ser hecho tan simplemente como esto: (ispell del defadvice (después de consejo) (flyspell-almacenador intermediario)) (anuncio-activar el 'ispell t) Random links: Ammianus Marcellinus | Holden | La historia secreta | Paso de Poudre del La | Valle de Skeena-Bulkley