我有一个类似于这个['hello world'-2, 'another string'-2,...]
的列表,我需要将字符串与整数分开,以便处理它们。有关如何做到这一点的任何想法?我试过这个:
1 ?- term_string('hello world'-2,String),split_string(String,'-',' ',List).
String = "'hello world'-2",
List = ["'hello world'", "2"].
但是这给了我一个字符串的字符串,我只想要字符串。
答案 0 :(得分:0)
我认为转换为术语的字符串表示然后拆分字符串是错误的方法。这有点蛮力和间接。您可以直接拆分条款:
split_term(A-B, [A, B]).
split_list(L, R) :- maplist(split_term, L, R).
?- split_list(['hello world'-2, 'another string'-2], R).
R = [['hello world', 2], ['another string', 2]].