Функциональная чистота с использованием 'let' в Haskell

Поскольку я работаю над изучением Haskell, я понимаю, что это чисто функциональный язык. У меня проблемы с пониманием, почемуletЗаявления нене нарушать чистоту.

Например (в ghci):

Prelude> let e = exp 1
Prelude> e
2.718281828459045
Prelude> let e = 2
Prelude> e
2

ISN»т мой второйlet заявление, производящее побочный эффект? Или второйlet Скажите новое закрытие?

Ответы на вопрос(2)

Ваш ответ на вопрос