[erlang-questions] ** exception error: no function clause matching test_calculate:validate(["1", "+", "1"], []) (test_calculate.erl, line 11)

Roelof Wobben <>
Wed Sep 30 17:42:20 CEST 2015


Hello,

I try to make a little parser which parse calculations.

So so far I have this code :

-module(test_calculate).

-export([validate/1]).

scan(String) ->
     validate(string:tokens(String, " ")).

validate(String) ->
     validate(String, []).

validate([Head | Tail], Validated_list) when Head >= $0 , Head =< $9 ->
     validate(Tail, [Head | Validated_list]);

validate([Head | Tail], Validated_list) when Head =:= $+ ->
     validate(Tail, [Head | Validated_list]);

validate([], Validated_list) ->
     Validated_list.

test() ->
     ["1","+","1"]    = scan("1 + 1"),
     ["10", "+", "1"] = scan("10 + 1"),
     ["1", "+", "10"] = scan("1 + 10"),
     io:format("All tests are green ~n").

but as soon as I try :

test_calculate:validate(["1","+", "1"])

I see the above error

Someone a tip where things are going the wrong way ?

Roelof



More information about the erlang-questions mailing list