술어 디스패치

Predicate dispatch

컴퓨터 프로그래밍에서 술어 디스패치는 메서드가 임의의 결정 가능한 논리 술어 및/또는 메서드 [1][2]선언에 첨부된 패턴 매칭에 기초하여 런타임에 선택되도록 하는 다중 디스패치("멀티메타")의 일반화입니다.

Raku는 임의의 함수 [3]또는 메서드 파라미터에 대해 임의의 코드를 실행할 수 있는 "where" 구를 사용한 술어 디스패치를 지원합니다.

Julia는 Package를 PatternDispatch.jl함께 가지고 있지만, 그 외에는 여러 디스패치를 기본적으로 지원합니다.

실험적인 실장은 Common [4][5]LISP 및 Java([2]JPred)으로 작성되었습니다.

이 기능을 사용하면 이전에 선언한 메서드를 세분화된 수준에서 개방적으로 확장할 수 있지만, 서로 다른 개발자에 의해 작성된 술어가 같거나 겹치는 여러 확장자는 예상치 못한 방식으로 서로 간섭할 수 있습니다.이 점에서 이것은 애스펙트 지향 프로그래밍과 유사합니다.

레퍼런스

  1. ^ Millstein, T. Practical Predicate Dispatch (PDF). OOPSLA '05.
  2. ^ a b Millstein, T.; Frost, C.; Ryder, J.; Warth, A. (2009). "Expressive and modular predicate dispatch for Java". ACM Transactions on Programming Languages and Systems. 31 (2): 1. CiteSeerX 10.1.1.212.4268. doi:10.1145/1462166.1462168.
  3. ^ "class Signature". Retrieved 2020-07-07.
  4. ^ "Predicate Dispatching in Common Lisp Object System" (PDF).
  5. ^ "pcostanza/filtered-functions". GitHub. Retrieved 2016-04-07.

외부 링크