functional NodeIterator