我尝试运行此代码,最终导致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
...
答案 0 :(得分:4)
这是完全预期和正常的行为。
a = [ map toLower x | x <- a ]
是a
的递归定义,递归永远不会结束。注意等号两边的a
。 GHCi没有崩溃,只是一直运行这个代码,直到你按Ctrl-C中断它。