是否有任何不是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)'。但是,通常情況下,融合失敗的方法有很多,「純粹適用於任一」是我所知道的與規範方法最接近的東西。 –