Хотя это выглядит хвостово-рекурсивным, потому что вызов появляется только один раз в коде, у вас есть более одного рекурсивного вызова - по одному для каждого элемента в вашей коллекции.По крайней мере, это то, что видит компилятор.(Предположим, что это плоская карта в некоторой коллекции; я не знаю, что возвращает p
)
Вы передаете рекурсию куда-то как анонимную функцию.Никто не знает, как часто это будет выполняться.