On Sat, Aug 22, 2009 at 11:24 PM, Michel Salim
<michael.silva...@gmail.com>wrote:

>
> On Sat, 2009-08-22 at 23:00 -0700, bradford cross wrote:
>
> >
> > Destructuring is useful all over the place, not just for pattern
> > matching.  For example, it is really useful in function parameter
> > vectors.
>
> I consider that to be an example of pattern matching, though.


As far as I understand it.  Pattern matching is built from destructuring
bind, but destructuring bind is not pattern matching.  Pattern matching
follows a match-when-return, or match-with-return logical flow written as:
[match_val] -> return_val

using Maikel's esample:

type foo = [ Foo of int ];

value frobnicate x =
       match x with
       [ Foo 5 -> do_something ()
       | Foo 7 -> do_something_else ()
       | Foo x -> do_more x ];

Pattern matching is a composition of destructuring bind, predicates, and
guard clauses.  Destructuring bind can be used elsewhere, without predicates
or guards,  in which case I don't call it pattern matching.  Although maybe
I am wrong on some technical terminology, this is how I think of it.



>
> --
> Michel
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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