Hi Tim,
Very readable -- a good first program! A few things you might do
differently:
(1) Keywords are fns. You don't have to say #(:exists %) -- just
say :exists !
(2) You can apply the same trick as in #1 to #(not (:exists %)) by
using remove instead of filter.
(3) Similarly, #(:ip %) could be just :ip
(4) Take a look at using futures instead of agents.
(5) Maybe rewrite some nested forms using ->
(6) Aren't you pinging all the ips twice?
(7) You could build used-ips as a set.
Happy Clojuring,
Stu
On May 9, 2010, at 9:42 AM, Tim Morgan wrote:
I picked up Programming Clojure by Stuart Halloway last week and am
working through the book. I'm coming from a Perl/Python/Ruby
background, so Java + Lisp + functional programming is all new to me.
I thought a good exercise would be to write a script that pings all
ips on a subnet looking for existing hosts, since I've written the
same thing in Ruby before.
The script I came up with is here: http://gist.github.com/395153
It works (and it's considerably faster than my Ruby equivalent!), but
I'm not certain it's idiomatic Clojure, and would love if someone
could critique me a bit. Tear it apart.
Thanks!
-Tim Morgan
--
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