[Haskell-beginners] Feedback on my first, small project (piece).
Tony Morris
tonymorris at gmail.com
Tue Aug 5 22:42:56 UTC 2014
https://gist.github.com/tonymorris/a0e82e603d4d32597bbc/revisions
On 06/08/14 06:42, David McBride wrote:
> I took a look at your main and made some changes that might help. I
> have not looked at your glob file at all.
>
> 1. Rather than using length args successively in multiple if/else if
> statements, which recalculates the value, just use a case, calculate
> it once and then go from there, when you can.
>
> 2. Use let or where to make new function rather than putting them all
> inline.
>
> 3. Instead of looping the main entirely to get all of stdin, use said
> new function and have it loop itself. You could also streamline this
> to have its own function that does not require the glob to be passed
> into each loop.
>
> 4. Use withFile instead of opening the file and then forgetting about
> the handle. If you had enough files on the commandline, you would
> exhaust the allowable open file handles on the system. Withfile will
> close the handle when you are done with each one.
>
> 5. Use mapM_ to get rid of the results that are returned by mapM. It
> is also faster if you are not going to use the results anyways.
>
> 6. When you are in a monad (such as IO), you can use when instead of
> if to optionally perform a statement, and it looks a bit prettier.
>
> There are other minor things, but this is a pretty good start.
>
> Here's the resulting code (I have not run it, but it should be pretty
> close to what you had):
> https://gist.github.com/anonymous/615e48004ca2eed82d0a
>
>
> On Tue, Aug 5, 2014 at 4:08 PM, Dominik Bollmann
> <dominikbollmann at gmail.com <mailto:dominikbollmann at gmail.com>> wrote:
>
>
> Hello Haskeller's,
>
> I recently dived into Haskell and then wanted to practice it a bit!
> Therefore I wrote a small program that matches UNIX-style globs. The
> program behaves kind of like grep, just that it matches a glob and
> not a
> regular expression. And also, it offers only *very* rudimental
> functionality compared to grep.
>
> The code is available on github: https://github.com/bollmann/Globber
> When writing the program I tried to satisfy the specification as given
> at: http://www.scs.stanford.edu/14sp-cs240h/labs/lab1.html. This Lab
> material btw. also inspired me to try writing such a program :-).
>
> In order to improve my programming in Haskell, I would love to hear
> feedback from you guys on this first small project of mine. Any
> comments
> regarding style, used idioms, as well as general and specific code
> improvements are highly appreciated. Thanks!
>
> Cheers, Dominik.
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org <mailto:Beginners at haskell.org>
> http://www.haskell.org/mailman/listinfo/beginners
>
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140806/7138cb6e/attachment.html>
More information about the Beginners
mailing list