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

Reply via email to