Hi, If you really need multiple value calls, you can always try to emulate parts of it with some fancy macros. I've hacked up a quick proof of concept - I haven't gotten a chance to test it too much, but it seems to work.
http://paste.lisp.org/display/68919 - Jeff On Oct 20, 1:00 pm, "Fredrik Appelberg" <[EMAIL PROTECTED]> wrote: > On Mon, Oct 20, 2008 at 1:03 PM, Parth Malwankar > <[EMAIL PROTECTED]>wrote: > > > > > > > On Oct 20, 3:51 pm, "Fredrik Appelberg" <[EMAIL PROTECTED]> > > wrote: > > > Hi all, > > > > The CL feature for handling multiple return values from a function come > > in > > > really handy sometimes and make for cleaner APIs. For example, the ROUND > > > function returns the integer part of a float as the regular value (as > > this > > > is what you want most of the time), but optionally also returns the > > floating > > > point part in case you want it. > > > > I haven't found anything like MULTIPLE-VALUE-BIND in Clojure. Are there > > any > > > plans of incorporating any kind of mechanism for multiple return values? > > > Hi Fredrik, > > > Similar results can be accomplished using vectors and > > destructuring in Clojure. > > > user=> (defn foo [] [:one :two :three]) > > #=(var user/foo) > > user=> (let [[a b c] (foo)] (println b)) > > :two > > nil > > user=> > > > The destructuring capabilities of "let" are quite nice. > > A bunch of examples are available in the let reference: > >http://clojure.org/special_forms > > I agree that Clojure's let form goes a long way towards making multiple > return values easy to handle. What's missing, though, is the ability to > return a single value or multiple values depending on the context in which > the function was called. I.e, if the call happens enclosed in > MULTIPLE-VALUE-BIND, I get all the returned values, otherwise I get a single > one. > > Anyway, this is a really nifty feature in CL, but it might not be necessary > in Clojure as its 'let' form is more potent. > > Cheers, > -- Fredrik > ============================================== > What am I up to?http://twitter.com/appelberg --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---