On Jun 22, 2010, at 3:27 PM, cageface wrote: > In this case it takes some visual parsing to see what the predicates > and results are and if you break them up onto individual lines you > have to count evens to figure out what the results are. The extra > level of indentation in the CL case makes it a lot easier. The only > easy solution I've considered for this is to add an extra blank line > between each clause, but this looks weird. > > Any thoughts on this or other approaches?
Try this: (defn compare-row [a b] ;; compare null rows as > to advance cursor (cond (and (nil? a) (nil? b)) [0,0] (and (nil? a) (not= b nil)) [1, 0] (and (not= a nil) (nil? b)) [-1, 0] true (loop [col 0 a a b b] (let [cmp (compare-fields (first a) (first b))] (if (and (< col (count a)) (= cmp 0)) (recur (+ 1 col) (rest a) (rest b)) [cmp,col]))))) I do this with multi-line lets and hash-map initializations too: (let [ foo (calculate-foo arg1) bar (calculate-bar arg2) extra-long-name (calculate-extra-long-name arg3)] (do-stuff)) (hash-map :foo (calculate-foo arg1) :bar (calculate-bar arg2) :extra-long-name (calculate-extra-long-name arg3)) -- 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