У тебя есть функция от трех параметров - типа F, они принимает 3 параметра типов T,V,U и возвращает обьект типа R. У тебя есть словарь состоящий из каких-то обьектов, к которым привязаны хендлеры. Есть например какой-то Enumeration, и у тебя на каждый из них есть определенный хендлер. Вот все что делает функция это ищет хендлер по обьекту из условного enum, и если найдено соответствие то в таком случае возвращается результат применения параметров к этому вытащенному хендлеру, если же ничего не найдено возвращается результат дефолтного обработчика