У меня есть такой код:
Prelude> let n = [1,2,3,4]
Prelude> n
[1,2,3,4]
Prelude> 0:n
[0,1,2,3,4]
Prelude> let n = 0:n
И когда я набираю интерпретатор Haskell после верхнего:
Prelude> n
Я получаю бесконечный результат:
[0,0,0,0,0,0,0,0,0
А где печать "0" бесконечна.
Почему я получаю такой результат?
Есть ли какие-то рекурсивные вещи, и почему / как это работает на уровне переводчика?
Могу ли я отловить переполнение стека, что такое на GHCi или нет?
Спасибо,
С наилучшими пожеланиями!