在沉思些什麼有用的標準類建議to this one class Coordinate c where
createCoordinate :: x -> y -> c x y
getFirst :: c x y -> x
getSecond :: c x y -> y
addCoordinates :: (Num x, Num y) => c x y -> c
我對Haskell比較陌生,無法理解雙功能實用程序。我想我在理論上理解他們:比如說,如果我想要抽象出抽象多種具體類型的類型,比如Either或Maybe,我需要將它們封裝在雙模函數中。但是,一方面,這些例子看起來特別有意思,另一方面,它看起來好像你可以通過構圖簡單地實現相同的功能。 舉個例子,我遇到了Jeremy Gibbons和Bruno C. d在The Essence of the Iter
寫這樣的實例聲明工作正常: data Either a b = Left a | Right b
instance Functor (Either a) where
fmap _ (Left x) = Left x
fmap f (Right x) = Right (f x)
現在可以說,我想這個反轉,左應用於F到值: instance Functor (Either
假設兩個新類型都是這樣 type MyProductType a = (FType1 a, FType2 a)
type MyCoproductType a = Either (FType1 a) (FType2 a)
定義......這FType1和Ftype2是Functor兩個實例。 如果現在要宣佈MyProductType和MyCoproductType爲Functor情況下,將編
參數化類型別名我有一個Seq[R],我想拆分此爲Tuple2[Seq[E], Seq[S]],我編寫此我想到的是,我可以使用自定義Bifunctor爲seqs和鍛鍊一個元組,而試圖實現代碼: import scalaz.Bifunctor
type MyType[E, S] = (Seq[E], Seq[S])
case class MyVali[E, S](tp: (Seq[E], Se