OpenMusic

Visual Programming | Computer-Assisted Composition

OpenMusic Reference

Prev| | Next


flat

flat

(lists module) -- removes imbrication (nesting) from lists

Syntax

flat lst &optional level

Inputs

name data type(s) comments
lst a tree  
level a non-negative integer  
lst? any  

Output

output data type(s) comments
first a tree  

Description

Returns a copy of list with parentheses removed. By default, flat removes all levels of nesting, returning a list whose only parentheses are those which enclose it, a ‘flat’ list.

When the optional input is used, only level levels of parentheses are removed, starting from the outside. Setting level to 0 will thus return the list unchanged. Leaving level at nil will remove all levels of nesting.

Examples

Flattening a list

Here, the list is flattened completely:

? OM->(1 2 a 3 b 4)

Here, the optional input level has been set to 2. Only the two outside levels of nesting have been removed, leaving one intact:

? OM->(1 (2 a) (3 b) 4)


Prev Home Next
first-n Up floor