applicative

    13熱度

    2回答

    我一直在閱讀this paper,並且在那裏提到Applicative類是在構圖下關閉的。 這實際上意味着什麼?

    17熱度

    1回答

    考慮以下類型簽名: data Foo x = Foo { name :: String , reader :: String -> x } instance Functor Foo where fmap f (Foo n r) = Foo n $ f . r 現在我展示從自然轉化Foo到optparse-applicative的Parser類型: impor

    3熱度

    1回答

    我想在一個程序中使用optparse-applicative庫,該程序根據參數數目執行不同的操作。 例如,參數解析爲它計算周長的程序: module TestOpts where import Options.Applicative type Length = Double data PerimeterCommand = GeneralQuadranglePerimeter

    19熱度

    2回答

    我瞭解<$>的簽名背後的原因,因爲它只是fmap的中綴版本,但將其與>>=的簽名類型進行比較,它對我來說意義不大。 我們先來確定一下我的意思。 (>>=) :: Monad m => m a -> (a -> m b) -> m b (<*>) :: Applicative f => f (a -> b) -> f a -> f b (<$>) :: Functor f => (a -> b)

    9熱度

    1回答

    在Hackage中是否有類似於MonadIO的類型類別,但對於Applicative s,允許人們輕鬆地將IO動作擡升爲"applicative composition stacks",基於IO? 如果這種類型類存在,它會由Applicative-Monad Proposal的實施作出過時了嗎?該提案是否涉及對MonadIO的Monad限制的放寬?

    1熱度

    2回答

    在LYHFGG作者指出,「Monads只是應用仿函數,支持>> =」 (見下圖)。 我不明白如果我看看Monad type class的定義,這種說法可能是真實的。 Monad類型類似乎與Control.Applicative類型類沒有任何關係,例如Monad類型類不是Applicative的子類型。所以很明顯,在技術上,在Haskell中,Monads和Applicative仿函數是完全獨立的類

    1熱度

    3回答

    有: getSdr = Sdr <$> u1 <*> u1 <*> u1 <*> getU1List <*> mcn <*> mcn␣ <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn <*> mcn 旺旺:

    13熱度

    1回答

    我一直在使用Haxl monad(這裏描述:http://www.reddit.com/r/haskell/comments/1le4y5/the_haxl_project_at_facebook_slides_from_my_talk),它有一個有趣的特性,<*>其應用實例與Control.Monad的ap不同。這是一個關鍵特性,可以在不阻塞的情況下進行併發計算。例如,如果hf和ha長計算,然後

    3熱度

    2回答

    讓我們假設我們有 a :: IO (Maybe String) b :: IO (Maybe String) data Foo = Foo String String 我想從a和b獲得Maybe Foo。 目前,我正在做這個 do a' <- a b' <- b Foo <$> a' <*> b' 但是,我覺得應該有一個更簡單的方法, (\x y ->

    7熱度

    2回答

    我正在通過Brent Yorgey Haskell course,我無法爲Applicative定義一個好實例。解析器的定義如下: newtype Parser a = Parser { runParser :: String -> Maybe (a, String) } 該函數採用一個串,解析一定量的輸入,並返回一個也許元組,其中所述第一值是分析器的類型,和其餘的是未解析的餘數的字符串。例如