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.

Noch keine Kommentare eingereicht. Bitte hilf uns diese Aufgabe zu verbessern.

Schreibe einen Kommentar