Я написал этот фрагмент кода, и я предполагаю, что len
является хвостовым рекурсивным, но переполнение стека все еще происходит. Что не так?
myLength :: [a] -> Integer
myLength xs = len xs 0
where len [] l = l
len (x:xs) l = len xs (l+1)
main = print $ myLength [1..10000000]