<p dir="ltr">OK, I have a few comments:<br>
- why handle '' in your implementation of not ? I get the suspicion that either you've been exposed to some other language where there was some special value to always have to handle, or that you've been looking for inspiration in some string-related recursion examples? (Bonus question: how would your implementation of not in Haskell look like? Would it have three clauses? )<br>
- '' is not a string, but an atom. They are different beasts.<br>
- so far, there's no recursion at all. Nor would you need recursion for implementing not, or, and etc.<br>
Why are you asking questions before you get to the recursion part, in a post mentioning recursion in the title? (You are allowed to, of course, but the rest of us are allowed to be confused by it :-))<br>
As I understand the task, it is about writing a module which literally takes (representations of) boolean expressions, such as "true AND (false OR true)" and calculates the result. That does require recursion (as well as choosing a suitable data structure for representing expressions).<br>
Starting with the functions mentioned in the task description, as you have dine,  sounds like a good idea, though.</p>
<p dir="ltr">- Finally: there are two parts to good code: 1) does it work and 2) is it well written. (Well, also 1b) how little does it take to make it stop working.)<br>
For 2), this mailing list can be a good source of help. But 1) you can do yourself - you could eg add a test  function to your module:<br>
test () -><br>
  false = b_not(true),<br>
  %... other test cases...<br>
  ok.</p>
<p dir="ltr">A side effect of this is signalling your level of understanding in mailing list posts, improving the chance of answers at the right level.<br>
(It may be clear at this point that I don't really know at which level to reply...)</p>
<p dir="ltr">Hoping this helps somehow<br>
/Erik</p>
<div class="gmail_quote">Den 08/02/2015 11.56 skrev "Roelof Wobben" <<a href="mailto:r.wobben@home.nl">r.wobben@home.nl</a>>:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I have studied recursion the last few weeks by using Haskell and I think I understand it.<br>
<br>
I  did a portion of this exercise :<br>
<br>
Write a module boolean.erlthat takes logical expressions and Boolean values (represented as the atoms  trueand  false) and returns their Boolean result. The functions<br>
you write should include b_not/1, b_and/2, b_or/2, and b_nand/2. You should not use<br>
the logical constructs  and,  or, and  not, but instead use pattern matching to achieve your<br>
goal.<br>
<br>
so far I have this :<br>
<br>
-module(boolean).<br>
<br>
-export([b_not/1]).<br>
<br>
% if a empty string is given , the answer will be a empty string.<br>
b_not('') -><br>
  '';<br>
<br>
% is false is given, the answer will be true.<br>
b_not(false) -><br>
  true;<br>
<br>
% is true is given, the answer will be false<br>
b_not(true) -><br>
  false.<br>
<br>
Is this a good try or can I change anything ?<br>
<br>
Roelof<br>
<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</blockquote></div>