A.24 library(lists): List Manipulation
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • The SWI-Prolog library
        • library(lists): List Manipulation
          • member/2
          • append/3
          • append/2
          • prefix/2
          • select/3
          • selectchk/3
          • select/4
          • selectchk/4
          • nextto/3
          • delete/3
          • nth0/3
          • nth1/3
          • nth0/4
          • nth1/4
          • last/2
          • proper_length/2
          • same_length/2
          • reverse/2
          • permutation/2
          • flatten/2
          • clumped/2
          • max_member/2
          • min_member/2
          • max_member/3
          • min_member/3
          • sum_list/2
          • max_list/2
          • min_list/2
          • numlist/3
          • is_set/1
          • list_to_set/2
          • intersection/3
          • union/3
          • subset/2
          • subtract/3
    • Packages
Availability::- use_module(library(lists)).(can be autoloaded)
Source[det]flatten(+NestedList, -FlatList)
Is true if FlatList is a non-nested version of NestedList. Note that empty lists are removed. In standard Prolog, this implies that the atom’[]’is removed too. In SWI7, [] is distinct from’[]’.

Ending up needing flatten/2 often indicates, like append/3 for appending two lists, a bad design. Efficient code that generates lists from generated small lists must use difference lists, often possible through grammar rules for optimal readability.

See also
append/2