Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 是否>>;=操作员不执行功能?_F#_Hopac - Fatal编程技术网

F# 是否>>;=操作员不执行功能?

F# 是否>>;=操作员不执行功能?,f#,hopac,F#,Hopac,我正在做一个辅助项目,我第一次使用Hopac。我(对我来说)遇到了一个奇怪的编译问题,我一直无法解决。我怀疑这里的问题是我,而不是霍帕克 该程序应该是一个简单的控制台应用程序,使用来自各种服务的通知。下面是有问题的模块: module Provider open System open System.IO open Hopac open BitThicket.NotificationHelper.Core open BitThicket.NotificationHelper.Providers

我正在做一个辅助项目,我第一次使用Hopac。我(对我来说)遇到了一个奇怪的编译问题,我一直无法解决。我怀疑这里的问题是我,而不是霍帕克

该程序应该是一个简单的控制台应用程序,使用来自各种服务的通知。下面是有问题的模块:

module Provider

open System
open System.IO
open Hopac
open BitThicket.NotificationHelper.Core
open BitThicket.NotificationHelper.Providers

let defaultProviderTypes =
    [| typeof<GitHub.GitHubNotificationProvider> |]

type Provider = {
    getCh : Ch<Providers.INotification seq>
}

let giveLatest ch latest =
    Ch.give 

let start config logger (providerType:Type) = Job.delay <| fun () ->
    let providerImpl = Activator.CreateInstance(providerType) :?> Providers.INotificationProvider
    let p = { getCh = Ch() }

    let rec server = 
        let latest = providerImpl.GetLatestNotificationsAsync(None) |> Job.fromAsync 
        latest >>= Ch.give p.getCh // error here
    }

    Job.start server
在这种情况下,错误是:
此函数接受的参数太多,或者在不需要函数的上下文中使用。

我向哈夫询问了他的空闲时间,他的建议是检查
>=
的替代定义。该工具实际上并没有帮我解决这个问题,但我打开的唯一定义
>=
的名称空间/模块是
Hopac
bitcheet
的名称空间非常简单,其中包含一些类型定义)


我做错了什么?

我在看源代码,我看到绑定运算符实际上是在中定义的,而不是在
Hopac

我在看源代码,我看到绑定运算符实际上是在中定义的,而不是在
Hopac
中定义的。哦,天哪。我只是假设它是自动打开的,但你完全正确。谢谢我建议将您的评论移动到一个答案,这样您就可以找到一些虚假的互联网点!:-)好的,完成,转换为答案。
// ...
    let rec server =
        let latest = providerImpl.GetLatestNotificationsAsync(None) |> Job.fromAsync
        latest >>= fun l -> Ch.give p.getCh l // error here
// ...