连接一个字符串列表,中间有其他字符串
Concat a List of Strings with additional Strings in between
这是我要搜索的内容。我想连接一个给定的列表,例如:
list = [a,b,c,d]
我想连接这些字符串。在连接之间,我想始终放置相同的字符串,以便结果看起来像:
"Hey a, Hey b, Hey c, Hey d"
这在 swi-Prolog 中可行吗?
您正在寻找隐藏在 atomic_list_concat/3
谓词后面的“intersperse”或“join”函数:
atomic_list_concat(+List, +Separator, -Atom)
或者创建 SWI-Prolog“字符串”(应该在处理文本的场景中使用):
atomics_to_string(+List, +Separator, -String)
您不仅希望“中间有额外的字符串”,因为您还希望在每个字符串的“前面”有一些东西。
更具体地说,您希望每个字符串前面有“Hey”,每个字符串之间有“,”。
我会用 maplist/3
to concat the String "Hey " in front of each of your entries using atom_concat/3
.
然后可以使用 atomic_list_concat/3
将所有“Hey X”条目连接成一个字符串。
该谓词还采用一个分隔符,该分隔符应放置在所有条目之间,即在您的情况下为“,”。
List = [a,b,c,d],
maplist(atom_concat("Hey "), List, HeyList),
atomic_list_concat(HeyList, ", ", FinalString).
结果:
List = [a, b, c, d],
HeyList = ['Hey a', 'Hey b', 'Hey c', 'Hey d'],
FinalString = 'Hey a, Hey b, Hey c, Hey d'.
这是我要搜索的内容。我想连接一个给定的列表,例如:
list = [a,b,c,d]
我想连接这些字符串。在连接之间,我想始终放置相同的字符串,以便结果看起来像:
"Hey a, Hey b, Hey c, Hey d"
这在 swi-Prolog 中可行吗?
您正在寻找隐藏在 atomic_list_concat/3
谓词后面的“intersperse”或“join”函数:
atomic_list_concat(+List, +Separator, -Atom)
或者创建 SWI-Prolog“字符串”(应该在处理文本的场景中使用):
atomics_to_string(+List, +Separator, -String)
您不仅希望“中间有额外的字符串”,因为您还希望在每个字符串的“前面”有一些东西。 更具体地说,您希望每个字符串前面有“Hey”,每个字符串之间有“,”。
我会用 maplist/3
to concat the String "Hey " in front of each of your entries using atom_concat/3
.
然后可以使用 atomic_list_concat/3
将所有“Hey X”条目连接成一个字符串。
该谓词还采用一个分隔符,该分隔符应放置在所有条目之间,即在您的情况下为“,”。
List = [a,b,c,d],
maplist(atom_concat("Hey "), List, HeyList),
atomic_list_concat(HeyList, ", ", FinalString).
结果:
List = [a, b, c, d],
HeyList = ['Hey a', 'Hey b', 'Hey c', 'Hey d'],
FinalString = 'Hey a, Hey b, Hey c, Hey d'.