Лямбда исчисление не нужно, чтобы понять ФП. Я, кстати, имел большие проблемы с пониманием untyped lc, т.к. после работы с типизированными языками думал, что термы обязаны иметь какой-то смысл (типизироваться)
Все ФП, что в scala, что в haskell, что в C++ крутится вокруг двух глубоко математических концепций - лямбд и категорий. Вопрос «есть ли жизнь без кошек?» давайте пока не будем рассматривать.