Я написал простую функцию в haskell, которая не является хвостовой рекурсией и суммирует значения в списке, где:
nonTailRecursiveSum :: [Integer] -> Integer
nonTailRecursiveSum [] = 0 --base case
nonTailRecursiveSum (x:xs) = x + sum xs
Но сейчас я пытаюсь реализовать ту же функцию, но с использованием хвостовой рекурсии. Насколько я знаю, хвостовая рекурсия выполняет рекурсивный вызов на последнем этапе, поэтому я попробовал что-то вроде:
tailRecursiveSum :: [Integer] -> Integer
tailRecursiveSum [] = 0
tailRecursiveSum (x:xs) = aux_f(x) + tailRecursiveSum xs
.
.
Но я потерялся на полпути, потому что я не знаком с хвостовой рекурсией в Хаскеле. Может ли кто-нибудь помочь мне в продолжении хвостовой рекурсивной версии кода?