gpt4 book ai didi

haskell - 如何为 Church 编码的免费 monad 编写解包器?(Haskell)

转载 作者:行者123 更新时间:2023-12-04 04:09:58 24 4
gpt4 key购买 nike

这样的函数怎么写? :

unWrap :: F f a -> Either a (f (F f a))

其中 F - Church 编码的免费 monad.unWrap 如果值等于“Pure a”则返回“a”,如果值等于“(Free f_)”则返回“f_”。

最佳答案

您可以使用 fromF 转换为另一种表示形式,在本例中为 Free f所以你可以模式匹配,和 toFFree f 转换回来.

unwrap :: Functor f => F f a -> Either a (f (F f a))
unwrap u = case fromF u of
Pure x -> Left x
Free v -> Right (fmap toF v)

关于haskell - 如何为 Church 编码的免费 monad 编写解包器?(Haskell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61888584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com