<div dir="ltr">One thing I would suggest, as far as "Haskell style", is to make even short programs like these into libraries.  You don't need to write a main function to test or even run such a simple program, and if you write it as a library, you can re-use it.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jun 29, 2014 at 12:15 AM, Rafael Almeida <span dir="ltr"><<a href="mailto:almeidaraf@gmail.com" target="_blank">almeidaraf@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Good idea. Attached is the best solution I could think of. I think it reads quite elegantly :)</div><div class="gmail_extra">
<br><br><div class="gmail_quote"><div><div class="h5">On Sun, Jun 29, 2014 at 2:05 AM, Francesco Ariis <span dir="ltr"><<a href="mailto:fa-ml@ariis.it" target="_blank">fa-ml@ariis.it</a>></span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div><div>On Sat, Jun 28, 2014 at 11:16:31PM -0300, Rafael Almeida wrote:<br>
> I'm trying to practice my Haskell. So I had the idea of making a program<br>
> which, given a mother's and a child blood type, it can determine whether a<br>
> certain father is possible or not.<br>
><br>
> Please take a look on this gist with my implementation:<br>
><br>
>     <a href="https://gist.github.com/aflag/14429dfb2e89791a44e2#file-parentaltesting" target="_blank">https://gist.github.com/aflag/14429dfb2e89791a44e2#file-parentaltesting</a><br>
><br>
> Would you care to comment on it? It looks a bit cumbersome to my eyes. I'm<br>
> trying to find the most intuitive and elegant way of do it. I'm not so much<br>
> worried with performance.<br>
<br>
</div></div>Since your 'main' function returns a Bool (possible/impossible), a simpler<br>
way to approach the problem is to calculate the potential blood-type of child<br>
C given parents A and B and then check the actual blood-type passed against<br>
this list (I attach a .hs with such solution).<br>
<br>
The 'cumbersome' part is the |Genes -> BloodType| conversion (and vice-versa);<br>
you can calculate the inverse instead of typing it out, but it will still be<br>
cumbersome.<br>
<br>
<br>
<br></div></div>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>