3 ms·
Thanks for this post! I'm diving into clojure (currently a python dev), and I'm starting to get that tingly anticipation of being able to use these kinds of too
by robertfw 14y ago
Thanks for this post! I'm diving into clojure (currently a python dev), and I'm starting to get that tingly anticipation of being able to use these kinds of tools. It was really useful to see how you iterate through your solution.
- eckzow 14y agoThat's funny--as a python guy I was squirming for a set comprehension immediately: >>> a = {'a':1,'b':2} >>> b = {'b':3,'c':4} >>> def keylist(*maps): ... return ', '.join(sorted({str(k) for m in maps for k in m.keys()})) or '<none>' ... >>> keylist(a, b) 'a, b, c' >>> keylist() '<none>' I'm sure people will have differing opinions on the readability of a nested set comprehension, but from the bullets at the top of the article to one-liner implementation in ~30 seconds. (For an arbitrary number of maps, no less.) (edit: added '<none>' on empty, fixed formatting, whoops now I'm over 30 seconds :))
- ims 14y agoThis is pretty pedantic, but wouldn't for k in m be more "pythonic" than for k in m.keys() ?
- robertfw 14y agoSomeone pointed out elsewhere in the thread that this kind of code has to be read from the inside out, and for that reason I think the clojure code makes a better balance of readable vs succinct.