# flatten -- flatten a nested list or a matrix

## Synopsis

• Usage:
flatten x
• Inputs:
• Outputs:
• a list, or matrix obtained by removing braces one level in

## Description

If x is a list, then flatten x effectively removes the braces surrounding any elements of x that happen to be lists.

 i1 : flatten {{2,3,4}, {{5}, 6}, 7} o1 = {2, 3, 4, {5}, 6, 7} o1 : List

If x is a matrix, then flatten x puts the elements of x in a single row, ordered by column. If x is an $m\times n$ matrix, then flatten x is a $1\times mn$ matrix.

 i2 : R = ZZ/101[a,b,c]; i3 : m = matrix {{2, a},{b^2, 23},{c, c^3}} o3 = | 2 a | | b2 23 | | c c3 | 3 2 o3 : Matrix R <--- R i4 : flatten m o4 = | 2 b2 c a 23 c3 | 1 6 o4 : Matrix R <--- R

## Caveat

The matrix produced by flatten m is not the same as the matrix given by unnesting the list used to define the matrix.

• deepSplice -- remove all levels of subsequences from a sequence or list
• splice -- remove subsequences from a sequence or list
• lists and sequences -- a detailed overview of lists and sequences in Macaulay2

## Ways to use flatten :

• "flatten(Matrix)"
• "flatten(VisibleList)"

## For the programmer

The object flatten is .