здесь я пытаюсь реализовать метод разделения в эрланге, который должен разбивать строку вроде «я на вершине горы» в список типа [«i», «am», «on», "в" и "гора", "сверху"].
вот мой код (exerc.erl):
-module(exercise).
-import(oi,[read/1]).
-export([split/4]).
split(Text,_,Result,_) when Text == [] -> Result;
split([Head|Tail],Separator,Result,WordSummer) when Head == Separator ->
split(Tail,Separator,[Result|lists:flatten(WordSummer)],[]);
split([Head|Tail],Separator,Result,WordSummer) ->
split(Tail,Separator,Result,[WordSummer|Head]).
У меня проблема в том, что при вызове моей экспортированной функции я получаю следующую ошибку
9> c(exercise).
{ok,exercise}
10> exercise:split("sdffdgfdg dgdfgfg dgdfg dgdfgd dfgdfgdfgtrty hghfgh",$ ,[],[]).
** exception error: no function clause matching lists:do_flatten(103,[]) (lists.erl, line 627)
in function lists:do_flatten/2 (lists.erl, line 628)
in call from exercise:split/4 (exercise.erl, line 9)
11>
Мне нужна помощь, чтобы решить мою проблему, пожалуйста.
Спасибо заранее.