Check out clojure.contrib.io (Clojure 1.2) or clojure.contrib.duck- streams (Clojure 1.1):
(use 'clojure.contrib.io) (defn save-map [f m] (write-lines f (for [[k v] m] (str k \tab v)))) Or, using your code... (defn save-map [f m] (spit f (apply str (interleave (apply concat m) (cycle "\t\n"))))) Justin On Mar 20, 8:22 pm, "Mark J. Reed" <markjr...@gmail.com> wrote: > (I'd say something about my own particular idiom, but that's more of a > Python thing.) > > Anyway, new to Clojure but not to Lisp or Java. Writing something to > interoperate with some Perl code that stores a hash in a simple flat > file syntax: > > key1<tab>value1<newline>key2<tab>value2<newline>... > > sorted on the keys. > > These are my load and save routines; the load has nothing to handle > misformatted files yet, but I'm just looking to get a feel for > idiomatic Clojure. Do these look reasonable? The save routine feels > a little clunky to me. > > (defn load-map [filename] > (apply sorted-map (re-seq #"[^\n\t]+" (slurp filename)))) > > (defn save-map [the-map filename] > (doto (java.io.FileWriter. filename) > (.write (apply str (interleave (apply concat (seq the-map) > (cycle "\t\n")))) (.close))) -- 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 To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.