2016-05-21 25 views
0

Ich habe eine Liste ähnlich ['hello world'-2, 'another string'-2,...] und ich muss die Zeichenfolge von der ganzen Zahl trennen, um beide zu verarbeiten. Irgendwelche Ideen, wie man das macht? Ich habe dies versucht:Prolog - separate Zeichenfolge von Ganzzahl

1 ?- term_string('hello world'-2,String),split_string(String,'-',' ',List). 

String = "'hello world'-2", 
List = ["'hello world'", "2"]. 

Aber das gibt mir eine Zeichenfolge einer Zeichenfolge, möchte ich nur die Zeichenfolge.

Antwort

0

Ich denke, Konvertierung in eine Zeichenfolge Darstellung eines Begriffs dann eine Zeichenfolge zu teilen ist der falsche Ansatz. Es ist ein bisschen brutal und indirekt. Sie können die Begriffe direkt teilen:

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]]. 
+0

danke! das hat perfekt funktioniert. –