У вас есть "главная" функция которая делает:
1. Что -то делаю раз
2. Что-то делаю два
3. Что-то делаю три.
"Что-то делаю два" имеет разные варианты реализации, в одном случае вы делаете одно, в другом другое. Вы можете для каждой такой реализации написать несколько вариантов реализации главной функции, и всегда в ней шаги №1 и №3 будут идентичны. Чтобы не повторятся, вы выностие шаг №2 в анонимную функцию, и теперь можете передавать её как параметр главной функции, т.о. вы сделали код более кратким.