是否有任何不是Applicative
的好例子Functor
?好的,我正在寻找不需要申诉undefined
的非平凡(不是Const Void
)的例子。如果没有任何方法可以证明那里的空间是无趣的?没有应用程序的仿真器的例子
这与Good examples of Not a Functor/Functor/Applicative/Monad?类似,但在那里没有完全解决。
作为后续问题,有没有可能不Applicative
情况下,留给由于有太多的不规范Applicative
情况下是有意义的Functor
S的任何有趣的例子?例如,“扩展Maybe
”是有点无聊
data MayB a = Jus a | Nothing1 | Nothing2 | Nothing3 | ...
instance Applicative MayB where
pure = Jus
Jus f <*> Jus x = Jus (f x)
Jus f <*> n = n
n <*> Jus x = n
n1 <*> n2 = methodOfResolvingNothingWhatsoever n1 n2
是否有例子,其中Applicative
实例的变化是更多的物质?
作为边注,'数据MAYB一个=只求一个| Nothin Int'和'Nothin n1 <*> Nothin n2 = Nothin $ max n1 n2'是我如何实现它的。然后你会看到更高层次优先的失败等级的概念。不确定这在哪里有用,但很容易编码。 – bheklilr
定义无趣会很好。据我所知,'Cont m'是一个应用iff'm'是一个幺半群,因此有很多函数 - 那里没有应用。基本上,任何与我们定义函数的参数无关的“结构”很多的东西都将很难成为应用程序。 – jozefg
@bheklilr这很明智,还有“纯粹应用的Either”数据Eit b a = L b |具有实例Monoid b => Applicative(或b)其中L b1 <*> L b2 = L(b1 <> b2)'。但是,通常情况下,融合失败的方法有很多,“纯粹适用于任一”是我所知道的与规范方法最接近的东西。 –