search function

Iterable<Element> search(
  1. Iterable<Element> root,
  2. bool predicate(
    1. Element
    )
)

Implementation

Iterable<Element> search(
  Iterable<Element> root,
  bool Function(Element) predicate,
) =>
    [
      [root.where(predicate)],
      root.map((e) => search(e.children, predicate))
    ].reduce((v, e) => [...v, ...e]).reduce((v, e) => [...v, ...e]);