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的例外是 。 如果你想啓動一個可能會失敗並且不在乎它的返回值是什麼的線