REBOL [ Author: "Brett Handley" Title: "Series tools." Date: 18-Oct-2000 Email: brett@codeconscious.com Purpose: "Provide some additional function relating to series." Comment: "Yet another work in progress." ] flatten: function [ "Un-nests a series." series [series!] /deep "Works down through all levels of nesting." /in-place "Changes the passed series." ][cursor advance-num][ either in-place [ cursor: series ][ cursor: copy/deep series ] while [not tail? cursor][ either series? cursor/1 [ either deep [advance-num: 1][advance-num: length? cursor/1] remove insert cursor cursor/1 cursor: skip cursor advance-num ][ cursor: next cursor ] ] head cursor ]