<p dir="ltr">Hi,</p>
<p dir="ltr">Your validate function seems to expect a list of chars, but it is in fact getting a list of lists (result of string:tokens). So what's happening is that in the first clause you are comparing a list to an integer, and in the second you are asserting the type =:= as well (which will not match).</p>
<p dir="ltr">Rather have a look @ Sean Cribbs' neotoma (github) than trying to roll your own.</p>
<p dir="ltr">R</p>
<div class="gmail_quote">On 30 Sep 2015 5:50 pm, "Roelof Wobben" <<a href="mailto:r.wobben@home.nl">r.wobben@home.nl</a>> wrote:<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 try to make a little parser which parse calculations.<br>
<br>
So so far I have this code :<br>
<br>
-module(test_calculate).<br>
<br>
-export([validate/1]).<br>
<br>
scan(String) -><br>
    validate(string:tokens(String, " ")).<br>
<br>
validate(String) -><br>
    validate(String, []).<br>
<br>
validate([Head | Tail], Validated_list) when Head >= $0 , Head =< $9 -><br>
    validate(Tail, [Head | Validated_list]);<br>
<br>
validate([Head | Tail], Validated_list) when Head =:= $+ -><br>
    validate(Tail, [Head | Validated_list]);<br>
<br>
validate([], Validated_list) -><br>
    Validated_list.<br>
<br>
test() -><br>
    ["1","+","1"]    = scan("1 + 1"),<br>
    ["10", "+", "1"] = scan("10 + 1"),<br>
    ["1", "+", "10"] = scan("1 + 10"),<br>
    io:format("All tests are green ~n").<br>
<br>
but as soon as I try :<br>
<br>
test_calculate:validate(["1","+", "1"])<br>
<br>
I see the above error<br>
<br>
Someone a tip where things are going the wrong way ?<br>
<br>
Roelof<br>
<br>
_______________________________________________<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" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div>