我有一個 數據類型trie = Node * char *(trie ref)list |空 我想收集線索的所有單詞,使用這兩個相互遞歸函數: words_in_trie: trie -> (char list list -> 'a) -> 'a
all_words: trie ref list -> (char list list -> 'a) -> 'a
,然後用 樂趣all_entr
我正在嘗試使用任務並行庫來對樹進行求和,其中子任務僅在樹遍歷到特定深度之前產生,否則它將使用剩餘的子節點進行求和延續傳遞風格,避免堆棧溢出。 但是,代碼看起來非常難看 - 使用狀態monad來攜帶當前深度會很好,但狀態monad不是尾遞歸。或者,我將如何修改繼續monad以攜帶狀態?或者創建一個狀態和延續monads的組合? let sumTreeParallelDepthCont tree co