Rich,
This is code from my socket repl that sparked my interest in support
for destructuring in clojure/binding.
(defn socket-streams ;; returns a vector of 3 streams
[s]
[(LineNumberingPushbackReader. (InputStreamReader. (.getInputStream
s) "UTF-8"))
(OutputStreamWriter. (.getOutputStream s) "UTF-8")
(PrintWriter. (OutputStreamWriter. (.getOutputStream s) "UTF-8")
true)])
(defn socket-repl ;; accepts a vector of 3 streams with minimal
fuss
"Starts a repl thread on the iostreams of supplied socket"
[s]
(on-thread
#(binding [[*in* *out* *err*] (socket-streams s)] (SocketRepl/
repl))))
I've updated the patch I posted previously. I think this
implementation is very readable and a nice example of how much
destructuring, metadata, and reader support for a variety of
collections can contribute to making Clojure code more clear and
compact.
http://clojure.googlegroups.com/web/destructuring-binding.patch
Please consider including it in Clojure.
Thanks,
--Steve
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---