A few brief, immediate responses:

On 05/29/2010 11:56 AM, Eric Kow wrote:
+  repoOrder a b = compare (reponame a) (reponame b)

This can be written as compare `on` reponame

   on :: (b ->  b ->  c) ->  (a ->  b) ->  a ->  a ->  c  Source
   (*) `on` f = \x y ->  f x * f y.

(The kind of thing one picks up through cultural osmosis)

Neat. That does seem useful. I figured there was probably a name for that, but `on` probably wouldn't have occurred to me.

Refactor Run.hs to use updated tabulateRepo
-------------------------------------------
-    case tabulate formatTimeResult res of
-      []  ->  return ()
-      [(_,t)] ->  echo_n $ TR.render id id id t
-      _   ->  error "Not expecting more than one table for a repo and its 
variants"
+    let tables = repoTables benchmarks res
+    if length tables == 1 then
+      echo_n $ TR.render id id id $ tabulateRepo formatTimeResult (head tables)
+      else error "Not expecting more than one table for a repo and its 
variants"

Note that checking length and doing head is slightly less safe than just
relying on pattern-matching with case (albeit perhaps more readable).
It's unlikely that you'll break apart if length tables == 1 then foo
(head tables), which is why I say "slightly"

If I do more Haskell I'll probably have to break myself of the head/tail over-reliance. (Prior to Haskell I did spend a few months hacking in Common Lisp where that pattern's so common there's a million names for it...) Luckily for me the list comprehension over-reliance from Python hacking seems to fit in reasonably well with Haskell. :)

Also: do we never get the empty list?

I've got a feeling that it never happens. More than that, I'm pretty sure that Run.hs itself is deprecated and never actually used, but I wasn't sure enough to actually just go ahead and remove it. It seems to me to be an old "main" function from back before darcs-benchmark started using CmdArgs sub-commands, but I didn't take the time to do the darcs-fu to double check that against repository history. (Lazier and easier just to fix the compile errors by updating it. ;)

--
--Max Battcher--
http://worldmaker.net
_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to