G'day all. Quoting Isaac Dupree <[EMAIL PROTECTED]>:
> Okay, looking at that code: > The comments before the type definitions are mostly good... > now it looks like I'm going into critique mode :) BTW, for the record, I didn't try too hard with this. It is meant to be illustrative of what you can do with Haskell and not too much time to spare. I didn't haddock-ise the comments because Diff isn't a library. The comments are meant to be more commentary (this is a tutorial, remember!) than developer documentation. > Range (that is, the comment describing it) needs to say whether it's > inclusive of its first and/or its last endpoint (in fact it is > inclusive, I can determine by looking at the definition of rangeDist) Fair point. > I suppose Match is the same (inclusive), but I can't tell. And > personally I don't know what the significance/meaning of a "found match" is. OK, this needs explanation. A Match is a match _between_ the two files being diffed. So (a,b) means that line a in file 1 matches line b in file 2. I'll note that, thanks. > Comparing "data Range = Range Line Line" and "type Match = (Line,Line)", > they are isomorphic, but declared differently (which is fine IMO) Yup. They only have to be different enough to cause a type error if you accidentally try to mix them. > The only IO that displayDiff does is putStrLn. It should probably return > a string instead [...] Possibly, or even use a Writer monad. I habitually use putStrLn, though, because I regularly program in multiple languages, and this way I don't have to remember how Haskell handles line termination on different platforms. Cheers, Andrew Bromage _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe