yes, thank you, that is what I was referring to + the :or and :as like:
(defn somefn
  [req1 req2 ;required params
   & {
      :keys [a b c d e] ;optional params
      :or {a 1 ;optional params with preset default values other than the
nil default
               ; b takes nil if not specified on call
           c 3 ; c is 3 when not specified on call
           d 0 ; d is 0 --//--
               ; e takes nil if not specified on call
           }
      :as mapOfParamsSpecifiedOnCall
      }]
  (println req1 req2 mapOfParamsSpecifiedOnCall a b c d e)
  )
;=> (somefn 9 10 :b 2 :d 4)
;9 10 {:b 2, :d 4} 1 2 3 4 nil
;nil

this may be good for most people, but not for me. I've tried implementing
something for me but I have it only half way done (and I haven't looked at
in in a few months) it's here [1] but u won't like how it looks xD

meanwhile I realized what OP was saying with destructuring the arg vector.

[1]
https://github.com/DeMLinkS/demlinks/blob/7064df0491ea2b565f6edf18708a599af8b37a33/src/util/funxions.clj


On Tue, May 7, 2013 at 9:58 AM, Pierre-Yves Ritschard <p...@spootnik.org>wrote:

> atkaaz, you can do this: (fn [& {:keys [arg1 arg2 arg3]}] ...)
>
>
> On Mon, May 6, 2013 at 10:03 PM, AtKaaZ <atk...@gmail.com> wrote:
>
>> I agree, I'm not sure what he means xD
>> If you ask me, I'd rather have each arg be identified by a keyword
>> instead of by order
>> like: (somefn :arg1 "somestr" :arg3 100 :arg2 (+ 1 2))
>> or all those in a map
>> I'll probably still do that for me, so that any function will take params
>> like this. There's probably a way this can be done but it's not good enough
>> for me, was it with :keys and :as map ?
>>
>>
>>
>> On Sun, May 5, 2013 at 10:52 PM, Alex Fowler <alex.murat...@gmail.com>wrote:
>>
>>> Tell us more about it.
>>>
>>>
>>> On Sunday, May 5, 2013 11:54:32 AM UTC+4, JvJ wrote:
>>>>
>>>> Is anyone else tripped out when they realize that when you write args
>>>> for a function.... you're basically just destructuring an arg vector?  It
>>>> trips me out.
>>>
>>>  --
>>> --
>>> 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/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> 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/groups/opt_out.
>>
>>
>>
>
>  --
> --
> 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/groups/opt_out.
>
>
>

-- 
-- 
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/groups/opt_out.


Reply via email to