String 阅读字符串并在Win Prolog中挑出字符串中的每个单词
我花了一整天的时间在互联网上,但在Win Prolog中找不到任何可以挑出字符串中每个单词的内置谓词 例如:String 阅读字符串并在Win Prolog中挑出字符串中的每个单词,string,list,prolog,sentence,win-prolog,String,List,Prolog,Sentence,Win Prolog,我花了一整天的时间在互联网上,但在Win Prolog中找不到任何可以挑出字符串中每个单词的内置谓词 例如: | ?- read(X). |: 'this is a string'. X = 'this is a string'. 是否有任何谓词可以帮助我挑出字符串中的每个单词? 像 或者一份清单 A = [This, is, a, string] 可能吗 在Win序言中,您可以使用: split_string(String, List):- string_chars(String, L
| ?- read(X).
|: 'this is a string'.
X = 'this is a string'.
是否有任何谓词可以帮助我挑出字符串中的每个单词?
像
或者一份清单
A = [This, is, a, string]
可能吗 在Win序言中,您可以使用:
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中,您可以使用原子列表(列表,,“这是一个字符串”)。表示什么?>表示您正在编写一个。
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)}.