Предикатная отправка - Predicate dispatch
Полиморфизм |
---|
Специальный полиморфизм |
Параметрический полиморфизм |
Подтип |
В компьютерное программирование, предикатная отправка является обобщением множественная отправка ("мультиметоды"), что позволяет метод для вызова быть выбранным во время выполнения на основе произвольно разрешимой логические предикаты и / или сопоставление с образцом прикреплен к объявлению метода.[1][2]
Раку поддерживает отправку предикатов с использованием предложений where, которые могут выполнять произвольный код для любой функции или параметра метода.[3]
Юля есть пакет для этого с PatternDispatch.jl но в остальном изначально поддерживает множественную отправку.
Созданы экспериментальные реализации для Общий LISP,[4][5] и для Ява (JPred[2]).
Он позволяет открытое расширение ранее объявленных методов на мелкомасштабном уровне, но несколько расширений с идентичными или перекрывающимися предикатами, созданными разными разработчиками, могут мешать друг другу непредвиденным образом. В этом отношении он похож на аспектно-ориентированное программирование.
Рекомендации
- ^ Миллштейн, Т. «Практическая отправка предикатов» (PDF). Цитировать журнал требует
| журнал =
(помощь) - ^ а б Millstein, T .; Frost, C .; Ryder, J .; Варт, А. (2009). «Выразительная и модульная отправка предикатов для Java». Транзакции ACM по языкам и системам программирования. 31 (2): 1. CiteSeerX 10.1.1.212.4268. Дои:10.1145/1462166.1462168.
- ^ "подпись класса". Получено 2020-07-07.
- ^ "Диспетчеризация предикатов в объектной системе Common Lisp" (PDF).
- ^ "pcostanza / отфильтрованные функции". GitHub. Получено 2016-04-07.
внешняя ссылка
Этот компьютерное программирование -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |