Haskell 多个表达式中缀形式的应用程序优先级

Haskell 多个表达式中缀形式的应用程序优先级,haskell,Haskell,假设我有这样的表达: instance FromRow MyData where fromRow = MyData <$> field <*> field <*> field 来自行MyData的实例,其中 fromRow=MyData字段 我无法理解应用程序的优先级,因为所有内容都是以中缀形式编写的。你能帮助我吗?这是正确的吗 fromRow = MyData (1) <$> (2) field (3) <*> (4

假设我有这样的表达:

instance FromRow MyData where
  fromRow =  MyData <$> field <*> field <*> field 
来自行MyData的实例,其中
fromRow=MyData字段
我无法理解应用程序的优先级,因为所有内容都是以中缀形式编写的。你能帮助我吗?这是正确的吗

fromRow =  MyData (1) <$> (2) field  (3) <*>  (4) field  (5) <*>  (6) field 
fromRow=MyData(1)(2)字段(3)(4)字段(5)(6)字段
都是左关联的,因此您的编号是正确的。您也可以使用以下括号编写:

(((MyData字段)字段)
都是左关联的,因此您的编号是正确的。您也可以使用以下括号编写:

(((MyData字段)字段)

您如何知道哪些是左关联的?您始终可以转到并键入该函数(例如,
)。然后,您可以查看该包,根据
的定义,您将看到它列为
infixl
表示左关联,而
infixr
表示右关联。在GHCi中,键入
:i
。这将告诉您它的类型和定义位置,然后
infixl4
。固定性声明中的
4
设置了它相对于其他中缀运算符的优先级,以确定哪些中缀运算符首先得到计算(9绑定最紧密,0绑定最少)。有关更深入的说明以及直观显示许多常用运算符的固定性的有用表格,您如何知道这些运算符是左关联的?您始终可以转到并键入函数(例如
)。然后,您可以查看该包,根据
的定义,您将看到它列为
infixl
表示左关联,而
infixr
表示右关联。在GHCi中,键入
:i
。这将告诉您它的类型和定义位置,然后
infixl4
。固定性声明中的
4
设置了它相对于其他中缀运算符的优先级,以确定哪些中缀运算符首先得到计算(9绑定最紧密,0绑定最少)。有关更深入的描述以及直观显示许多常用运算符的固定性的有用表格