2016-05-29 20 views
1

符号f >.> g = g . f是什么意思?具体来说,点周围的两个>符号表示什么?在Haskell中,符号>。>代表什么?

+1

从我所看到的,使用双'''的惯例表示一种“方向”。你可以读到这是将'f'的结果送入'g',这就是函数组合的“相反方向”。 – Dair

+6

'>。>'是一个不可分割的运算符符号。它代表一个功能。它的单个字符不代表任何东西,就像'print'中的'r'一样。在Haskell中,您可以定义新的运算符符号。你可以定义'>。>'或'+++ <> +++'或'>>><<<'或' - = + = - '来做任何你想做的事情。有些库恰好将'f>。> g'定义为'g。 F'。 –

回答

2

它只是一个操作符的名称;运营商也可能被命名为foo>>>>.>或其他东西,只要它在Haskell中是合法的名称即可。

这些符号的领域特定含义可能已由作者分配,特别是与同一个库中的其他名称有关,但在这种情况下,我怀疑是否存在更深一层的含义 - 它只是反向函数组合运营商。

+2

如果它是一个反向组合运算符(它应该在GHCi中用':t(>。>)'来确定),那么应该注意的是使用['>>>'](http:// hackage) haskell.org/package/base/docs/Control-Arrow.html#v:-62--62--62-)而不是基础库。 – leftaroundabout