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

Reply via email to