No, it actually compiles down to a pile of ifs, and try/catch/throws (for
backtracking). It's pretty fast, but it won't be as fast as a jump table
for complex matches, that's for sure.

Timothy

On Fri, May 15, 2015 at 5:53 PM, Surgo <morgon.kan...@gmail.com> wrote:

> core.match compiles down to case, does it not? So the comparisons here are
> similar: http://insideclojure.org/2015/04/27/poly-perf/
>
> -- Morgon
>
> On Friday, May 15, 2015 at 2:57:23 PM UTC-4, tbc++ wrote:
>>
>> One big thing to consider is that core.match is closed dispatch. If you
>> write a function that uses core.match, I can't extend it inside my code.
>> This is something that is possible with both multi-methods and protocols.
>>
>> Timothy
>>
>> On Fri, May 15, 2015 at 12:49 PM, Sam Raker <sam....@gmail.com> wrote:
>>
>>> The discussion/post-linked-to in
>>> https://groups.google.com/d/msg/clojure/eoAp6QVimYI/iipmEJNKdrIJ have
>>> got me thinking about protocols & multimethods, which I admittedly have
>>> possibly never actually used, now that I think about it. I'm wondering how
>>> they differ from core.match[1]. I realize protocols, specifically, have a
>>> niche for when you have concrete type information about your data and want
>>> better performance. I'm a little less clear about multimethods--in
>>> particular, I just considered using multimethods for something, and then
>>> ended up reaching for core.match because it seemed more closure-friendly.
>>>
>>> What, if any, are the benefits of using protocols/multimethods over
>>> core.match, or vice versa? When would you reach for one and definitely not
>>> the other(s)?
>>>
>>>
>>> [1] https://github.com/clojure/core.match
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+u...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> “One of the main causes of the fall of the Roman Empire was that–lacking
>> zero–they had no way to indicate successful termination of their C
>> programs.”
>> (Robert Firth)
>>
>  --
> 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
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to