En programación informática , el envío de predicados es una generalización del envío múltiple (" métodos múltiples ") que permite seleccionar el método a llamar en tiempo de ejecución basándose en predicados lógicos decidibles arbitrarios y / o coincidencia de patrones adjunta a una declaración de método. [1] [2]
Raku admite el envío de predicados utilizando cláusulas "where" que pueden ejecutar código arbitrario contra cualquier función o parámetro de método. [3]
Julia tiene un paquete para ello con PatternDispatch.jl pero, por lo demás, admite de forma nativa el envío múltiple.
Se han creado implementaciones experimentales para Common LISP , [4] [5] y para Java (JPred [2] ).
Permite la extensión abierta de métodos previamente declarados a un nivel detallado, pero múltiples extensiones con predicados idénticos o superpuestos creados por diferentes desarrolladores pueden interferir entre sí de formas imprevistas. En este sentido, es similar a la programación orientada a aspectos .
Referencias
- ^ Millstein, T. "Envío de predicado práctico" (PDF) . Parámetro desconocido
|conference=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - ^ a b Millstein, T .; Frost, C .; Ryder, J .; Warth, A. (2009). "Despacho de predicado expresivo y modular para Java". Transacciones ACM sobre lenguajes y sistemas de programación . 31 (2): 1. CiteSeerX 10.1.1.212.4268 . doi : 10.1145 / 1462166.1462168 .
- ^ "firma de clase" . Consultado el 7 de julio de 2020 .
- ^ "Despacho de predicados en el sistema de objetos Common Lisp" (PDF) .
- ^ "pcostanza / funciones-filtradas" . GitHub . Consultado el 7 de abril de 2016 .