06.08. Verflachung von Listen (Zusatzaufgabe)
Schreibe ein Prädikat flatten/2, das als Argumente zwei Listen nimmt und gelingt, wenn die zweite Liste die „Verflachung“ der ersten Liste ist:
?- flatten([a,b,[c,d]],[a,b,c,d]).
true.
?- flatten([[a,[b,[c,d]]]],[a,b,c,d]).
true.
Eventuell benötigst du das Prädikat is_list/1, das gelingt, wenn das Argument eine Liste ist, und das Prädikat not/1, das gelingt, wenn das Argument false liefert. Du kannst das Prädikat append/3 verwenden, auch wenn das nicht zu der effektivsten Lösung führt.