The idea is to avoid building a data structure for intermediary results, while still being able to process a variably sized and arbitrary shaped set of source data