我正在做一个小项目来精简序言。我现在要做的是,给定一个句子,返回一个单词列表。所以,我正在接受一个字符数组,例如“highs and lows”,并试图将它分成“highs”“和”“lows”。我正在使用字符数组,因为我想自己玩单词,而且我认为字符串不适用于此。
这是我的代码。
get_first_word([], _, []):-
!.
get_first_word(X, Pivot, Input):-
append(X, [Pivot|_], Input),
!.
split_at([],_).
split_at(Input, Pivot):-
get_first_word(X, Pivot, Input),
writef(X),
append(X, Y, Input),
split_at(Y, Pivot).
我遇到的问题是这变成了一个无限循环。最终它会传递自己的空输入,而我的基本案例写得不够好,无法处理这个问题。我该如何解决?