(++) appends two lists, i.e.,
[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
[x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]
If the first list is not finite, the result is the first list.
Performance considerations
This function takes linear time in the number of elements of the
first list. Thus it is better to associate repeated
applications of
(++) to the right (which is the default
behaviour):
xs ++ (ys ++ zs) or simply
xs ++ ys ++
zs, but not
(xs ++ ys) ++ zs. For the same reason
concat = foldr (++) [] has
linear performance, while
foldl (++) [] is
prone to quadratic slowdown
Examples
>>> [1, 2, 3] ++ [4, 5, 6]
[1,2,3,4,5,6]
>>> [] ++ [1, 2, 3]
[1,2,3]
>>> [3, 2, 1] ++ []
[3,2,1]