を使用するcata
を使用すると、結果にASTを折り畳むことができます。 Cofree
を使用すると、ASTに追加の注釈を保存できます。どのようにしてASTを取得し、各ステップで結果とともに注釈付きASTを返すことができますか?ハスケル再帰スキーム:中間結果でツリーにラベルを付ける
alg :: Term Result -> Result
alg = undefined
run :: Fix Term -> Result
run ast = cata alg ast
run' :: Fix Term -> Cofree Term Result
run' = ???
https://stackoverflow.com/questions/38462563/how-to-work-with-ast-with-cofree-annotation –
(TLの可能性のある重複; DR: '製品を使用します'、' Cofree'ではなく、ラベル付けに使用します)。 –
'Product'を使うと、構造体simoultaniaslyの両方でiterateしますか? – user47376