If you have control over the creation of the map, you could use something like 
a global counter to provide the next valid key.
You could also use a sorted map and just increment to last (biggest) key in the 
map.
Or you could use a random number. If the range is big enough, the probability 
of collisions will be low. In case of a collision you just draw again. 

On 26/05/2011, at 8:43 PM, Sunil S Nandihalli wrote:

> Hello everybody,
>  I was wondering if there is a way to find a key which does not exist in a 
> map in an efficient way. you can assume that all the keys are integers. 
> I currently do something like ....
> 
> (defn non-existent-key [mp]
>         (first (filter (comp not mp) (range))))
> 
> 
> Is there a possibly more efficient way of doing this?
> Thanks,
> Sunil.
> 
> -- 
> 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 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