continuations

    12熱度

    2回答

    假設我有一個睡眠功能: def sleep(delay:Int) : Unit @suspendable = { .... } 是有可能有一個功能,未來的創建可同步等待的睡眠功能的異步版本。 def future(targetFunc: (Int => Unit @suspendable)) : (Int => Future) = { .... } class Fu

    8熱度

    1回答

    假設在C++中,你對遞歸函數做了太多的遞歸調用,並且出現堆棧溢出錯誤。 你會如何以延續傳遞的風格重寫這個以避免堆棧溢出? 我在C++中描述這個有點困難。

    4熱度

    1回答

    我發現這篇文章:http://www.mono-project.com/Continuations 所以我有幾個關於它的問題。 基於此框架,是否有任何針對Nemerle的erlang樣式或(至少)scala樣式演員的實現? 如果不是,任何人都可以舉一個使用這個API的例子,請。 也是這個與本機Microsoft .NET CLR兼容的延續框架嗎? 謝謝你的幫助。

    2熱度

    2回答

    我想要一個可序列化的繼續,所以我可以在等待新事件時將異步工作流程醃製到磁盤。當異步工作流程正在等待let!時,它將被保存起來,同時記錄下需要喚醒的內容。除了任意內存IAsyncResult(或Task<T>等),它必須是,例如,傳入消息的過濾標準以及延續本身。沒有語言支持延續,這可能是一個壯舉。但是用計算表達式來處理明確的CPS轉換,它可能不會太棘手,甚至可能更高效。有沒有人處理過這樣的方法?

    11熱度

    1回答

    我正在嘗試使用Scala(2.9.0)延續來構建看似阻塞的API,但實際上它是異步的。假設你希望寫類似: if(ask("Continue?")) //Prompts Yes/No name = input("Enter your name") 凡ask,當用戶按下是返回一個布爾值,並input請求的值。從網絡服務器調用這個圖片,其中ask和input不會阻塞任何線程,它們只是在顯示

    7熱度

    2回答

    聲明:之前有人說:是的,我知道這是不好的風格,並沒有鼓勵。我只是爲了與Scala一起玩,並試着更多地瞭解類型推斷系統的工作原理以及如何調整控制流。我不打算在實踐中使用此代碼。 所以:假設我在一個相當長的功能,有很多後續檢查的開頭,而如果他們失敗了,都應該引起函數返回其他值(不丟) ,否則返回正常值。我不能在Function的主體中使用return。但我可以模擬它嗎?有點像break模擬scala.

    3熱度

    3回答

    我有點了解如何將基本功能(如運算法則)轉換爲Scheme中的延續傳球風格。 但是,如果函數涉及遞歸呢? 例如, (define funname (lambda (arg0 arg1) (and (some procedure) (funname (- arg0 1) arg1)))) 請給我意見。 預先感謝您。

    6熱度

    2回答

    我以前在業餘時間使用IronLua。 Lexing和解析目前已完成。因爲在.NET中實現Lua協程而不使用骯髒的線程攻擊並不容易,所以我停止了對它的工作。這與我如何編譯Lua函數有關,並且這是我在設計編譯器時需要儘早解決的一個問題。 我一直在研究協程的實現,事實證明我對延續的初步看法是正確的。由於協程創建,良率和其他操作不是語言關鍵字,而是「協同程序」表中的函數,因爲協程表可能已被先前腳本覆蓋,所

    2熱度

    1回答

    您能否給我提供一些有關如何在播放框架中使用延續的良好示例的鏈接?(除了播放框架的源代碼,它們的「樣本和測試」和現場文檔,已經是那裏) 任何文檔和理論中的「傻瓜」格式也讚賞。

    1熱度

    3回答

    嗨,大家好我正在實現一個F#函數,它需要兩個類型列表:(int * float)list。這兩個名單有不同的lentgths。 這對夫婦的int元素是一個漸增的代碼。 我想要做的是創建一個新列表,其中包含兩個具有相同代碼的列表中的每兩個元素的一對(int * float)。重要的是要注意列表中的代碼正在增加。 這些列表可能有點長,比如2-3000個元素,所以我嘗試使用continuation傳遞樣