这些行正确执行:
Prelude> 1 / (1 + 1)
0.5
Prelude> (/) 1 $ (+) 1 1
0.5
Prelude> (/) 1 $ 1 + 1
0.5
Run Code Online (Sandbox Code Playgroud)
这个没有:
Prelude> 1 / $ (+) 1 1
<interactive>:1:4: parse error on input `$'
Run Code Online (Sandbox Code Playgroud)
为什么?
Pio*_*ski 15
/是一个中缀运算符.它需要有效的表达方式.1是一个文字,因此是一个有效的表达.但是,在右侧,您有另一个中缀运算符,它需要在另一个有效表达式之前(并且1 /不是有效表达式,因为它缺少/运算符的右侧参数).这就是解析器报告错误的原因(语法无效 - 请参阅haskell报告以获取难看的细节;)