mutual-recursion

    0熱度

    1回答

    我開始學習球拍,我正在使用任意的arity樹和生成遞歸來從給定棋盤上獲取棋盤的所有可能版本。 所以我們可以說我有這樣的板,其中假指空: (list "X" "X" "O" "O" "X" "O" "X" #false "X") 的解決方案,這個根據要求是: (list (list "X" "X" "O" "O" "X" "O" "X" "X" "X") (list "X" "X" "O"

    0熱度

    3回答

    我目前正在研究一個模塊,該模塊允許用戶通過創建任務對象的實例(我的模塊提供任務類)來構建任意任務網絡模型(用於離散事件模擬) 。除其他外,任務包含描述其完成效果的邏輯,例如啓動不同的任務。通過這種方式,任務類的實例可以引用一個或多個其他實例,並具有循環引用/相互遞歸的可能性。 這裏是我的代碼進行非常簡化的版本: TaskModule.py class Task(object): def

    1熱度

    1回答

    我需要採用兩個相互遞歸方法的程序,並修改程序,使其包含單個遞歸方法。根據我的理解,我需要將遞歸調用按照調用順序放置在單個方法中,以結合這兩種遞歸方法。問題是有4個整數通過方法傳遞,第一個方法調用第二個方法兩次,第二個方法調用第一個方法兩次。 這是原來的代碼: public void drawHorizontal(Graphics graphics, double xMid, double yMid

    -2熱度

    3回答

    我知道在C++類型的遞歸定義的問題爲成員變量: #include "B.h" class A { B b; }; #include "A.h" class B { A b; }; 編譯器抱怨這是因爲以這種遞歸方式分配內存是不可能的。 我不明白的是,這似乎適用於函數的定義,以及: #include "B.h" class A { B foo();

    0熱度

    1回答

    我正在用相互遞歸實現在Haskell中進行一些動態編程。 我決定使用memoization加快速度。 Monad.Memo爲這種情況提供了MemoT轉換器。但它使用Map作爲存儲值的內部表示。雖然這給了我數量級的速度提升,但還不夠。 儘管lib支持基於數組和基於矢量的實現作爲內部存儲,但它僅適用於簡單遞歸,並且我沒有發現任何像MemoT這樣的變換器將它用於相互遞歸。 使用基於高效矢量的內部表示(如

    5熱度

    1回答

    我嘗試使用感應數據類型的語法,但它得到一條錯誤消息「互感類型必須編譯爲具有相關消除的基本歸納類型」。 下面是我嘗試的例子對自然數 mutual inductive even, odd with even: ℕ → Prop | z: even 0 | n: ∀ n, odd n → even (n + 1) with odd: ℕ → Prop | z: odd 1 | n: ∀ n,

    7熱度

    2回答

    我正在用Haskell中的外部函數接口進行試驗。我想實施一個簡單的測試,看看我能否做到相互遞歸。所以,我創建了下面的Haskell代碼: module MutualRecursion where import Data.Int foreign import ccall countdownC::Int32->IO() foreign export ccall countdownHaskell

    3熱度

    2回答

    考慮下面的玩具表現爲無類型演算: Require Import String. Open Scope string_scope. Inductive term : Set := | Var : string -> term | Abs : string -> term -> term | App : term -> term -> term. Fixpoint print (ter

    1熱度

    2回答

    這是我一直在研究的第二個SML程序。這些功能是相互遞歸的。如果我稱奇(1),我應該是真的,甚至(1)我應該是假的。這些函數應該適用於所有正整數。然而,當我運行這個程序: fun odd (n) = if n=0 then false else even (n-1); and even (n) = if n=0 then true else odd (n-1); 我得到:

    0熱度

    1回答

    我正在編程Haskell中的優先級爬升算法,但由於我未知的原因,不起作用。我認爲,秒差距狀態信息在某些時候輸了,但我甚至不知道那是錯誤的來源: module PrecedenceClimbing where import Text.Parsec import Text.Parsec.Char {- Algorithm compute_expr(min_prec): res