Clojure 멀티 메소드를 이해하려고 얼마 동안 시간을 보냈습니다. 필자가 이해하는 한, 주요 "프로"멀티 메소드 논쟁은 유연성이지만, 왜 단순한 if 또는 case 문보다 다중 방법이 더 나은지에 대한 논쟁과 혼동 스럽다. 누가 다형성과 과장된 사례 진술 사이의 경계가 어디에서 유래 되었습니까? 편집 : 질문에서 내가 'if'문과 비교하는 데 더 관
내 응용 프로그램의 일부를 렌더링 할 수있는 Clojure 응용 프로그램에서 "시각화"라는 메서드가 있습니다. 내가 가진 문제는 애플리케이션에서 자바 클래스이고 일부는 내부적으로 clojure :: idiom을 사용하여 맵 유형을 표시하는 필드가있는 해시 맵이다. 유형이나 내부 유형에 디스패치하기 위해 멀티 맵을 사용할 수는 있지만 동일한 멀티 메소드가 모
: (derive ::rect ::shape)
(derive ::square ::rect)
지금하여 shapes 네임 스페이스에 다음 실행 : (isa? ::square ::shape)
반환 true. 내가 실행할 때 그러나 (isa? ::square ::shape)
그것은 false를 반환, 실제로 도면에 대한 multimethods을 구현하
무엇이며, 무엇이 다른가요? 많은 소스는 Wikipedia처럼 제 그들은 같은 일,하지만 다른 사람은 명시 적으로 this question에 SBI처럼, 반대 말 : 첫째 : "방문자 패턴이 두 번 파견을 시뮬레이션 할 수있는 방법입니다 C++에서. " 이것은 완전히 옳지 않습니다. 실제로, 이중 디스패치는 C++에서 (누락 된) 다중 메소드를 시뮬레이트하