corecursion

    2

    1答えて

    私はコインシデンスタイプを試していましたし、自然数とベクトル(型のサイズがリスト)のコインシデンスバージョンを定義することに決めました。私は彼らとように無限の数に定義: CoInductive conat : Set := | cozero : conat | cosuc : conat -> conat. CoInductive covec (A : Set) : conat -> Se

    6

    1答えて

    に空でない構造をフォールディング私は変成を使用して、非空のバラの木のためFoldable.toListを書きたいが、最後の要素を抽出することが不可能だ: import Data.Functor.Foldable data RoseTree a = RoseNode a [RoseTree a] ana5 :: RoseTree a -> [a] ana5 = ana coalg5 c

    1

    2答えて

    を使用するcataを使用すると、結果にASTを折り畳むことができます。 Cofreeを使用すると、ASTに追加の注釈を保存できます。どのようにしてASTを取得し、各ステップで結果とともに注釈付きASTを返すことができますか? alg :: Term Result -> Result alg = undefined run :: Fix Term -> Result run ast = ca