【发布时间】:2019-02-01 22:46:11
【问题描述】:
我正在尝试在 Erlang 中实现拆分方法,该方法应该将"i am on the mountain top" 之类的字符串拆分为["i","am","on","the","mountain","top"] 之类的列表。
这是我的代码(exercise.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>
我该如何解决这个问题?
【问题讨论】:
标签: erlang