我对Haskell比较陌生,很难理解双函子的效用。我想我从理论上理解了它们:例如,如果我想要映射一个抽象多个具体类型的类型,例如,或者可能,我需要将它们封装在一个双函子中。例如,我在中看到了由Jeremy和BrunoC.D.S.Oliveira编写的代码:
data Fix s a = In {out::s a (Fix sunfold' :: Bifunctor s =>
首先,有一些动机:我想从多个地方获取配置--命令行参数,可能是配置文件,或者是其他服务。我对这些来源的格式没有任何特别的注意。我想做的是描述该配置的模式,并在必要时让可插拔的源为该配置生成解析器/编写器。模式还应该编码一些内容,如帮助文本、可能的完成选项等。oReader :: Monad m => String -> m a , oDescr :: Option
Functor f = Functor() ) // calculate stuff for "foo" using functor "f"现在我想将函子的选择委托给我的程序的用户,所以我决定创建一个函子工厂给定函子的描述性名称,我想要创建适当的函子,以便它可以用于创建所有Foo对象,如上面所示。这就是我陷入困境的</