Я нашел странную вещь о GHCi и списках.
Эта команда занимает некоторое время для выполнения и возвращает правильный ответ.
ghci> length [1..10^8]
100000000
Однако привязка этого к переменной и выполнение приводит к тому, что GHC потребляет около 5 гигабайт ОЗУ без освобождения до окончания сеанса GHCi. Ввод :quit
после того, как он потребляет 3 гигабайта больше, прежде чем выйдет.
ghci> len = length [1..10^8]
ghci> len
-- Consumes 5 GiB
100000000
ghci> :quit
-- Consumes 3 GiB
-- Exits
Это нормально? В чем разница между командами?
Версия GHC - 8.2.2.