ocaml-lwt

    1热度

    1回答

    我正在按照教程解释如何在OCaml中使用lwt和Cohttp来制作简单的Web服务器。 我有一个_tags文件,其中包含以下内容: true: package(lwt), package(cohttp), package(cohttp.lwt) 并有webserver.ml: open Lwt open Cohttp open Cohttp_lwt_unix let make_serv

    1热度

    1回答

    如何使用Lwt编写程序并与Tk接口进行交互。我试图用 let() = Lwt.async(Lwt_preemptive.detach Tkthread.thread_main); Lwt_main.run(main Tkthread.top) 其中main构造接口,并运行一个线程更新它运行在一个LWT抢占线程Tk的主线程。这最终会导致编程崩溃时发生致命错误(无法创建窗口小部

    2热度

    1回答

    我正在试验js_of_ocaml和node.js.如您所知,node.js大量使用回调来实现异步请求,而不引入显式线程。 在OCaml中,我们有一个非常好的线程库Lwt,它带有非常有用的语法扩展。我编写了一个绑定到某个节点库(AWS S3客户端)的原型,并添加了一个lwt-ish图层来隐藏回调。 open Lwt.Infix open Printf open Js let require_

    2热度

    1回答

    我试图写一个终端应用程序与Lwt。 基本上只要我的应用程序正在运行,我需要观看终端输入Lwt_io.read_line。 在我的程序运行时,是否有比下面(伪代码)更好的方式来实现某种循环? while true do let _ = ignore (Lwt_main.run my_application) done 我不确定这是否正确。每当my_application中的所有线程都

    0热度

    2回答

    可以使用Lwt.return作为递归函数中的最终调用吗? 我有一个编译好但功能不正常的函数,它看起来像下面的函数f。请假定在这个例子中,作为g提供的任何函数都没有问题,我基本上只是想知道是否可以使用以下形式的函数或者是否有更好/更简单(并且符合Lwt)做法如下: let rec f (x : string list) (g : string -> unit Lwt.t) = match

    1热度

    1回答

    这是一个使用Unix模块与子流程交互的简单程序。我刚刚推出cat shell命令,它发送一个字符串,并读回: #load "unix.cma";; (* Needed if you are in the toplevel *) let() = let sin, sout, serr = Unix.open_process_full "cat" [||] in output_

    1热度

    1回答

    我试图编写一个函数来尝试评估函数,但在特定的超时后停止。 我试图使用Deferred.any,它返回一个延迟,当一个基础延期满足时,该延迟被满足。 type 'a output = OK of 'a | Exn of exn let fun_test msg f eq (inp,ans) = let outp = wait_for (Deferred.any [ retur

    3热度

    1回答

    我正在尝试构建一个Lwt循环,它会将帧推送到WebSocket,等待响应,将其打印到屏幕上,等待60秒,然后再次重复该过程。我已经能够获得编译的东西,但我没有100%的权利。第一次通过循环一切正常,然后每次我收到错误消息“无效的UTF8数据”。我必须在我的Lwt循环或我对Websocket协议的理解中出现错误。我的代码: #require "websocket";; #require "lwt"

    0热度

    1回答

    我正在使用Ocsigen构建应用程序,此应用程序不会连接到数据库,目标是将内容从主网站复制到此处。 (我正在使用卷曲来做Get请求) 所以我的问题在于,我试图做一个“登录”与用户,我想建立一个服务,保存到我的代码username和password由用户引入。然后我可以使用username和password对主网站进行GET请求。 我的问题只有一个,我尝试了很多方法来建立一个服务,保存这两个字符串,

    2热度

    1回答

    我正在MirageOS(Unix)之上开发Ocaml的Web服务,此刻我在Lwt.async()上遇到了一些问题。 LWT中文档指出以下几点: val async : (unit -> 'a t) -> unit 异步˚F启动一个线程,而不 等待结果。如果失败(现在或稍后),则给予Lwt。async_exception_hook的例外是 。 如果你想启动一个可能会失败并且不在乎它的返回值是什么的线