Я не уверен, что это хорошая практика программирования, но я хотел бы знать, можно ли определить рекурсивную функцию, используя выражение лямбда.
Это искусственный пример, который я составил: Таким образом, можно рекурсивно определить факториальную функцию в Haskell следующим образом
factorial :: Integer -> Integer
factorial 1 = 1
factorial (n + 1) = (n + 1) * factorial n
Теперь мне нужна функция f такая, что f n = (factorial n) + 1. Вместо того, чтобы использовать имя для factorial n (т.е. Определяя его перед рукой), я хочу определить f, где factorial n задано лямбда-выражение в определении f. Могу ли я использовать рекурсивное определение лямбда в f вместо использования имени factorial?