20
:次のClojureプロトコルで何が問題になっていますか? Clojureは1.2で
私は間違っているつもりです(defprotocol PP
(foo [bar])
(foo [bar baz]))
=> PP
(extend-protocol PP
Object
(foo [bar] 1)
(foo [bar baz] 2))
=> nil
(foo "hello!")
=> #<CompilerException java.lang.IllegalArgumentException: No single method: foo of interface: PP found for function: foo of protocol: PP
?私はfoo関数の単一引数バージョンからの結果として1を見ることが期待されます。これは "hello!"明らかにjava.lang.Objectのインスタンスです。
ありがとうございました!非常に興味深いですが、私はこのように定義を上書きすることが可能であることに気づいていませんでした。ちょっとした雑感のようですね! – mikera