我在互联网上花了一整天的时间,但我无法在 Win-Prolog 中找到任何内置谓词来区分字符串中的每个单词。
例子:
| ?- read(X).
|: 'this is a string'.
X = 'this is a string'.
有没有我可以使用的谓词来帮助我,挑出字符串中的每个单词?喜欢
A = this
B = is
C = a
D = string
或列表
A = [This, is, a, string]
可能吗?
我在互联网上花了一整天的时间,但我无法在 Win-Prolog 中找到任何内置谓词来区分字符串中的每个单词。
例子:
| ?- read(X).
|: 'this is a string'.
X = 'this is a string'.
有没有我可以使用的谓词来帮助我,挑出字符串中的每个单词?喜欢
A = this
B = is
C = a
D = string
或列表
A = [This, is, a, string]
可能吗?
在 Win-Prolog 中,您可能会使用:
split_string(String, List):-
string_chars(String, LChar),
split_string(List, LWord-LWord, LChar, []).
split_string([Word|TailWords], LWord-[])-->
" ",
{string_chars(Word, LWord)},
split_string(TailWords, NLWord-NLWord).
split_string(Words, Head-[Char|LWord]) -->
[Char],
{[Char] \= " "},
split_string(Words, Head-LWord).
split_string([Word], LWord-[])-->
[],
{ string_chars(Word, LWord)}.
在 SWI-Prolog 中,您可以使用atomic_list_concat(List, ' ', 'this is a string').