(defmulti fib (fn [x] x) :default) (defmethod fib 0 [x] 0) (defmethod fib 1 [x] 1) (defmethod fib :default [n] (+ (fib (- n 2)) (fib (- n 1))))
seems to do the trick. On Wed, Nov 19, 2008 at 1:25 PM, Kyle R. Burton <[EMAIL PROTECTED]> wrote: > > I have no idea how much effort it would be, but I've found the common > lisp pcond library to be useful for pattern matching and a few other > use cases: > > http://www.cliki.net/pcond > > I'd also like to see support for value based as well as structural > shape based pattern matching. > > > Regards, > > Kyle > > On Wed, Nov 19, 2008 at 4:16 PM, Mark Volkmann > <[EMAIL PROTECTED]> wrote: >> >> I'm reading an excellent article on functional programming at >> http://www.defmacro.org/ramblings/fp.html. Toward the end there is a >> section on pattern matching. They give the following example which >> uses a fictional, Java-like syntax. Can Clojure do something like this >> where the fib function is overloaded using "patterns" instead of >> arity? >> >> int fib(0) { return 1; } >> >> int fib(1) { return 1; } >> >> int fib(int n) { >> return fib(n - 2) + fib(n - 1); >> } >> >> -- >> R. Mark Volkmann >> Object Computing, Inc. >> >> > >> > > > > -- > ------------------------------------------------------------------------------ > Wisdom and Compassion are inseparable. > -- Christmas Humphreys > [EMAIL PROTECTED] http://asymmetrical-view.com/ > ------------------------------------------------------------------------------ > > > > -- The Mafia way is that we pursue larger goals under the guise of personal relationships. Fisheye --~--~---------~--~----~------------~-------~--~----~ 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 To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---