명백한 이유로 다음은 작동하지 않습니다.Clojure에서 monoid 프로토콜을 작성하는 방법은 무엇입니까?
(defprotocol Monoid
(mappend [a b])
(mzero []))
mzero
제로 인수가, 제로 인수 방법은 프로토콜에 (이해가되지 않거나)는 허용되지 않습니다. 디스패치가 가치 기반이 아닌 유형 기반 인 하스켈이나 스칼라에서 이것은 문제가되지 않습니다.
Clojure에서 Monoid
프로토콜을 개념화하고 작성하는 올바른 방법은 무엇입니까?
왜 모듈이 아닌 프로토콜이 필요합니까? 다른 구현을 기대하고 있다면 특정 유스 케이스에서 어떤 구현이 필요한지 추측 할 수 있습니까? (나는 그것이 좋은 질문이라고 생각한다, 나는 관련 문제를 쫓아 내려고 노력하고있다). –
@andrewcooke 하스켈은 사용 사이트의 정적 유형을 기반으로합니다. 호출 된 메서드는 정적으로 처리됩니다. –
@andrewcooke, 진술 문맥에서 모듈이란 무엇을 의미합니까? – missingfaktor