有一天,我遇到了一个运算符,-<出现在将值绑定到monad中的变量的上下文中; 具体来说,它看起来像是将一个值传递给一个函数,然后该函数被分配(并且可能被评估?)到monad范围内存在的变量.
用法示例:
myMonad = do
myVar <- f -< x
Run Code Online (Sandbox Code Playgroud)
关于这个的一些问题:首先,它叫什么?运营商本身是不可谷歌的(谷歌不喜欢<或者>),我发现的一个名称," 箭头应用程序 ",通常链接到Haskell中的另一种Arrow存在,这似乎是无关的.
第二,为什么在大多数学习资源中没有解释这个操作员?无论是"Monads的温和介绍"还是LYAH都没有提及它,而且大多数Haskell运营商的名单都放弃了它.(这被认为是不好的做法吗?)
最后,这相当于使用括号,如,(myVar <- f -< x) == (myVar <- (f x))?还是更喜欢使用let myVar = (f x)?在任何一种情况下,如果这是它的使用方式,为什么要使用-<parens或$?