如何防止 GHCi 受到 "crashing" 的影响?

How do I prevent GHCi from "crashing" from this?

我试过 运行 这段代码,结果导致 GHCi 无法使用。 意思是,命令行 (Windows) 最终没有响应任何输入,只是显示一个空行。

Prelude> b = ["Empty", "Discrete", "Distinct", "Defiant", "Useful", "Good", 
"Imperative", "Safe", "Lawful", "Unpresidented", "Decadent", "Rich", 
"Strong", "Marvelous", "Volatile", "Obtuse", "Acute", "Revolutionary", 
"Frank", "Regular"]
Prelude> length b
20
Prelude> import Data.Char
Prelude Data.Char> a = [ map toLower x | x <- a ]
Prelude Data.Char> a

......

这是完全预期的正常行为。

 a = [ map toLower x | x <- a ]

a的递归定义,递归永无止境。注意等号两边的a。 GHCi 不会崩溃,它只会一直运行此代码,直到您按 Ctrl-C 中断它。