1
너무 많은 멀티 디스패치 기능이 떠오르고있는 것처럼 보입니다. 숫자를 줄이려고합니다. 내가 현재 사용하고있는 접근법은 다기능 다기능을 다른 다기능 전화로 호출하는 것이지만 잘못된 것으로 보입니다. 여기에 내가 좋아하는 것이 무엇의 예입니다 : 첫 번째 경우에 방법은 파견 값의 세 번째 요소가 무엇인지 상관하지 않는 것을 기본 개념, 그것은 그들에게 아무것도 걸릴 것Clojure defmethod 패턴 일치 디스패치 값
(defmulti foo
(fn [bar baz] [(:type bar) (:x baz) (:y bar)]))
(defmethod foo [:z :y _] [bar baz] (<I will take anything for the 3rd element>))
(defmethod foo [:z _ :x] [bar baz] (<I will take anything for the 2nd element>))
(defmethod foo [:z :y :x] [bar baz] (<I must have this dispatch value>))
...
,하지만 두 번째 요소는 다음과 같아야합니다.
클로저에 이와 비슷한 기능이 있습니까?
저는 술어 파견을 요청할 수도 있습니다. 아직 진행중인 작업입니다.