continuations

    2熱度

    2回答

    只是玩延續。目標是創建將接收另一個函數作爲參數的函數,以及執行量 - 和將應用參數給定次數的返回函數。 實現看起來相當明顯 def n_times[T](func:T=>T,count:Int):T=>T = { @tailrec def n_times_cont(cnt:Int, continuation:T=>T):T=>T= cnt match { case

    0熱度

    1回答

    我正在閱讀從here斯卡拉延續博客文章。不幸的是,這並不在斯卡拉2.10.0工作: def f():Int @cps[Int,Int] = {shift { (k:Int=>Int) => k(6) } - 1} <console>:10: error: wrong number of type arguments for util.continuations.cps, should be 1

    1熱度

    1回答

    我對結合任務並行庫和延續有效使用系統資源感興趣。 考慮以下使用GetResponseAsync() extension method defined in another recent question的情況。 WebRequest request = HttpWebRequest.Create(uri); Task<WebResponse> responseTask = request.Get

    1熱度

    1回答

    我有一個類,每個方法異步執行,即返回一個任務,但每個方法應該等待前面的調用完成。 繼續吧? 除了任務繼續在參數中使用委託(Action)而不是另一個任務。 我已經嘗試不同的東西,我可以做,使之工作最好的是以下(對我來說太複雜了)代碼: private Task QueueTask(Func<Task> futureTask) { var completionSource =

    5熱度

    3回答

    繼續描述接下來發生的一些事情,對吧? 這不僅僅是一個函數,它需要一個值並進行一些計算? (+ (* 2 3) 5) 的(* 2 3)的延續,是(+ _ 5) (define k (lambda (v) (+ v 5))) 什麼是這裏使用call/cc,而不是使用功能k點?

    1熱度

    2回答

    我正在使用akka數據流,我想知道是否有辦法導致特定的代碼塊等待未來的完成,而不明確使用該值未來。 實際使用案例是我有一個文件,並且我希望文件在特定的未來完成時被刪除,但不是之前。這是一個粗略的例子。首先想象我有這樣的服務: trait ASync { def pull: Future[File] def process(input : File): Future[File]

    6熱度

    1回答

    我正在閱讀以下Shift/Reset教程:http://www.is.ocha.ac.jp/~asai/cw2011tutorial/main-e.pdf。 到目前爲止,在將示例翻譯爲Scala(直到第2.11節)的過程中,我獲得了相當不錯的結果。但現在我似乎碰壁了。從淺井/ Kiselyov紙上的代碼定義了以下遞歸函數(這是OchaCaml - 我認爲): (* a_normal : term_

    1熱度

    2回答

    我試圖在已經存在的非常大的同步代碼庫中使用async/await。在這個代碼庫中有一些全局狀態,如果kludgy在同步上下文中工作正常,但它在async/await的異步上下文中不起作用。 所以,我的兩個選擇似乎是兩種因素走出全球範圍內其woould是一個非常大和非常耗時的任務,或者做一些巧妙的搭配延續時運行。 爲了更好地理解異步/等待和延續,我做了一個測試程序,如下圖所示。顯示在這裏。 // A

    18熱度

    1回答

    Oleg Kiselyov showed how to make a zipper from any traversable通過使用分隔延續。他的Haskell代碼很短: module ZipperTraversable where import qualified Data.Traversable as T import qualified Data.Map as M -- In t

    2熱度

    1回答

    以下兩個代碼塊的應該(在我心中)是無限循環 這工作 (define call/cc call-with-current-continuation) (define l 0) (define i 0) ((lambda() (call/cc (lambda (k) (set! l k))) (write i) (newline)