Stuart, I took a second look at your suggestion. I integrated it
directly in my code, which became much more elegant as a direct
consequence. :) And it's a tiny, tiny little bit faster too. :)

(defn all-zips []
  "Returns a lazy list of all possible American zipcodes."
  (let [zips5   (zip-formatted-range 5)
        zips4   (zip-formatted-range 4)
        zips5-4 (for [x zips5, y zips4] (str x "-" y))]
    (concat zips5 zips5-4)))

It definitely looks simpler. So my question becomes: is there a faster
way than using 'for'? I suppose not. Well, we've achieved ~71%
optimization, which is already quite good, thank you all.

On Jun 5, 11:17 am, Stuart Sierra <the.stuart.sie...@gmail.com> wrote:
> On Jun 5, 10:56 am, Daniel Jomphe <danieljom...@gmail.com> wrote:
>
> > I need to generate a list of all possible American zipcodes, MD5-
> > digested. Later on, I will need to do much more involving stuff,
>
> I'm not sure if this is exactly what you want, but maybe this will
> help:
>
> (defn all-zipcodes []
>   (for [x (range 1 99999), y (range 1 9999)]
>        (format "%05d-%04d" x y)))
>
> -Stuart Sierra
--~--~---------~--~----~------------~-------~--~----~
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