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