On Mon, Feb 7, 2011 at 2:16 PM, Ken Wesson <kwess...@gmail.com> wrote:
> Can't you just use extend-protocol to group your protocol
> implementations for each record type in one place?

That certainly works, but it's really not much different than:

(defrecord Bar [x y]
   Foo
     (bar [_] ...)
     (baz [_] ...)

which is what I'm trying to avoid.

It seems to me that the only reason that specifying the entire
implementation together is to avoid situations where the
implementation is not completely defined.

See, I'm less concerned about implementing the Protocol than I am
about creating "functions" that are dispatched by type, and since they
have to have the same argument list, I see no reason why that
boilerplate can't be eliminated.

Perhaps one solution for me is to write a macro that constructs a
protocol (and extends it to types) out of the definitions provided..
sort of a hybrid of extend-protocol and defp from before.

(defwhatever Foo
   (bar [_]
     String (body)
     Character (body))
   (baz [_]
     String (body)
     Character (body)))

Which gets me to where I ultimately want to be (methods defined
together per type extended too), but not quite what I'm really looking
for.

> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en



-- 
http://www.apgwoz.com

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to