首先,我对 Haskell 还很陌生,目前我只是在准备考试。我有这样的表达:
reverse . take 3 [1 .. 10]我得到的是一个错误。这是因为空格运算符(10)比.运算符(9)具有更大的优先级,并且上面的表达式相当于reverse . (take 3 [1..10])which is reverse . ([1, 2, 3])which是reverse和list之间的组合,这没有任何意义,对吧?我试图确保我做对了,我在互联网上没有找到类似的东西。
Jos*_*ica 16
你基本上是正确的。前缀函数应用程序(您称为“空间运算符”)比任何中缀运算符绑定得更紧密。为了完整起见,修复错误的方法是执行(reverse . take 3) [1 .. 10]或reverse . take 3 $ [1 .. 10]替代。