Availability:built-in
[]
) or
a term with functor `'[|]'
'118The
traditional list functor is the dot ('.'
). This is still
the case of the command line option --traditional is
given. See also section 5.1.
and arity 2 and the second argument is a list.119In
versions before 5.0.1, is_list/1
just checked for []
or [_|_]
and proper_list/1
had the role of the current is_list/1.
The current definition conforms to the de facto standard. Assuming
proper coding standards, there should only be very few cases where a
quick-and-dirty is_list/1
is a good choice. Richard O'Keefe pointed at this issue.
This predicate acts as if defined by the definition below on
acyclic terms. The implementation fails safely if
Term represents a cyclic list.
is_list(X) :- var(X), !, fail. is_list([]). is_list([_|T]) :- is_list(T).