原始的核心運動
同態模型原始核心運動。在展開的每次迭代中,展開函式可以返回新種子或整個子樹。
apo::Functor f => (a -> f (Either (Fix f) a)) -> a -> Fix f
apo f = Fix . fmap (either id (apo f)) . f
請注意,apo
和 para
是雙重的。翻轉中的箭頭; para
中的元組與 apo
中的 Either
是雙重的,並且實現是彼此的映象。
同態模型原始核心運動。在展開的每次迭代中,展開函式可以返回新種子或整個子樹。
apo::Functor f => (a -> f (Either (Fix f) a)) -> a -> Fix f
apo f = Fix . fmap (either id (apo f)) . f
請注意,apo
和 para
是雙重的。翻轉中的箭頭; para
中的元組與 apo
中的 Either
是雙重的,並且實現是彼此的映象。