&gt;<i>I&#x27;d assume laymen think in terms of combinators, ie like map (do this operation to all the things I have), or filter (through out all the widgets that fail the test). Thinking in terms of indices is pretty painful.</i><p>We may think &quot;do this operation to all the things I have&quot; for things that involve the totality of some items as an unknown number (e.g. pack all clothes, take all dishes out of the dishwater).<p>But we also think with indices, and very intuitively, for anything involving a specific number of counts, like the example I gave (run 10 laps, I&#x27;ve run 1...5...7...8...10, done).<p>&gt;<i>Map and filter on a tree is about as recursive as it gets.</i><p>Well, the original comment was &quot;lots of languages have gotten map and filter, and people seem to adapt to them just fine.&quot;<p>And while this might be true for array like collections, I don&#x27;t think people have adapted &#x27;just fine&#x27; to map and filter on trees -- I very much doubt it&#x27;s commonly used at all.