前几天,我遇到了一个运算符,-<
出现在将值绑定到monad中的变量的上下文中;特别是,看起来这会将值传递给函数,然后将其赋值给(并可能求值了?)存在于monad范围内的变量。
用法示例:
myMonad = do
myVar <- f -< x
关于此的几个问题:首先,它叫什么?运算符本身是不可谷歌搜索的(Google不喜欢<
或>
),而我找到的一个名称“ arrow application ”通常链接到Haskell中的另一种形式Arrow
,这似乎无关。
其次,为什么在大多数学习资源中都没有解释这个运算符?“ Monads的入门介绍”和LYAH都没有提及它,而且大多数Haskell运算符列表也都放弃了它。(是否认为这是不良做法?)
最后,这是否等效于使用括号,如(myVar <- f -< x) == (myVar <- (f x))
?还是更像是使用let myVar = (f x)
?无论哪种情况,如果使用的是这种方法,为什么要-<
在parens上使用$
?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句