Haskell 为什么此函数在ghci中给出解析错误?

Haskell 为什么此函数在ghci中给出解析错误?,haskell,ghci,Haskell,Ghci,我在玩ghci,我不明白为什么下面的代码会给我一个解析错误: *Test> break (\x -> x == '\r') "foobar" <interactive>:52:37: parse error (possibly incorrect indentation or mismatched brackets) *Test> 如果我把它放在括号里,它也会起作用 *Test> (break (\x -> x == '\r') "foob

我在玩ghci,我不明白为什么下面的代码会给我一个解析错误:

*Test> break (\x -> x == '\r') "foobar"

<interactive>:52:37:
    parse error (possibly incorrect indentation or mismatched brackets)
*Test> 
如果我把它放在括号里,它也会起作用

*Test> (break (\x -> x == '\r') "foobar")
("foobar","")
做一个类似的函数,接受一个lambda和一个list,我没有问题

*Test> map (\x -> '\r') "foobar"
"\r\r\r\r\r\r"

我错过了什么?这并没有阻止我做任何事情,但我想了解为什么ghci不开心

您使用的是什么版本的ghci?在7.4.1中它似乎对我有效。一定是你的ghci,对我有效too@devshorts我在win7上使用7.6.3,对我来说效果很好。这是一个疯狂的GHCi,允许变量绑定而不使用“let”@davidmani,很有趣。这可能与我使用的升华仪有关。如果我在常规的ghci中运行它,它工作得很好。我要给他们留一只虫子。我刚刚尝试了下面的
break(\x->x='\r')“foobar”
,效果很好。差是等号和回车之间的一个空格。不管怎样,这听起来像是他们的错误,而不是我正在做的任何事情。谢谢
*Test> map (\x -> '\r') "foobar"
"\r\r\r\r\r\r"