Ich habe versucht, Prädikat divide(L,Len,Slist)
zu schreiben, die wahr sein wird, wenn slist mit einer Liste der Länge Len von Liste L. zum Beispiel zugeordnet vereinigen könnenDividieren Liste in Stücke der benötigten Länge
divide([1,2,3,4,5,6,7],3,Slist).
solche Antworten geben sollte
Slist=[1,2,3];
Slist=[2,3,4];
Slist=[3,4,5];
Slist=[4,5,6];
Slist=[5,6,7];
Aber ich konnte keinen besseren Weg als length(X,Len), sublist(L,X).
finden, aber es funktioniert zu langsam. Wie sollte Divide Prädikat aussehen?
funktioniert es für mich 4 - Länge (X, 3), Unterliste ([1,2,3,4,5], X). X = [1, 2, 3]; X = [1, 2, 4]; X = [1, 2, 5]; ... – whd
versuchen Sie es mit der Unterliste ([], []). Unterliste ([X | T], [X | TS]): - Unterliste (T, TS). Unterliste ([_ | T], X): - Unterliste (T, X). – whd
und es ist so langsam? – CapelliC