stringtranslate.com

Despacho de predicados

En programación informática , el envío de predicados es una generalización del envío múltiple ("multimétodos") que permite seleccionar el método a llamar en tiempo de ejecución en función de 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 mediante cláusulas "where" que pueden ejecutar código arbitrario contra cualquier parámetro de función o método. [3]

Julia tiene un paquete para ello con PatternDispatch.jl pero por lo demás admite de forma nativa envíos múltiples.

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 de granularidad fina, pero múltiples extensiones con predicados idénticos o superpuestos creadas por diferentes desarrolladores pueden interferir entre sí de maneras imprevistas. En este sentido, es similar a la programación orientada a aspectos .

Referencias

  1. ^ Millstein, T. Despacho práctico de predicados (PDF) . OOPSLA '05.
  2. ^ ab Millstein, T.; Frost, C.; Ryder, J.; Warth, A. (2009). "Despacho de predicados expresivos y modulares para Java". ACM Transactions on Programming Languages ​​and Systems . 31 (2): 1. CiteSeerX 10.1.1.212.4268 . doi :10.1145/1462166.1462168. S2CID  2150617. 
  3. ^ "Firma de clase" . Consultado el 7 de julio de 2020 .
  4. ^ "Despacho de predicados en el sistema de objetos Common Lisp" (PDF) .
  5. ^ "pcostanza/filtered-functions". GitHub . Consultado el 7 de abril de 2016 .

Enlaces externos