有固定性的乐趣

时间:2014-04-17 19:43:52

标签: haskell

好的,所以这是一个愚蠢的问题。我已经定义了一个新的#运算符,我正在试图找出应该是什么样的固定性声明。

  1. 我希望{<1}}在 #后应用。那么这是否意味着优先级应该更高更低而不是++? (++优先为5。)

  2. 类型为++。我想要左联想还是右联想?因为在我看来其中一个会进行(#) :: Foo -> Bar -> Foo类型检查,而另一个则不会。

  3. 我知道这可能看似微不足道,但我总是总是似乎弄错了......

1 个答案:

答案 0 :(得分:9)

  1. $优先级最低(0),$始终应用&#34;最后&#34;因此,您希望#的优先级低于++。此外,您可以比较*+的优先顺序。

  2. 左关联意味着x # y # z = (x # y) # z(这也是左侧折叠的运作方式)。 x # (y # z)不会输入检查,但会(x # y) # z,因此您希望它 left 关联。