free-monad

    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

    5熱度

    1回答

    我擺弄周圍的免費單子和鏡頭,使用免費的單子來創建自己的IO單子的版本: data MyIO next = LogMsg String next | GetInput (String -> next) deriving (Functor) 我的狀態單子的頂部堆疊本像這樣:FreeT MyIO (State GameState) a其中GameState是: data

    4熱度

    1回答

    我一直在嘗試使用免費monads創建一個HTTP客戶端,類似於RúnarBjarnason給出的討論中採用的方法Composable application architecture with reasonably priced monads。 我到目前爲止的內容可以在這段代碼中看到,https://bitbucket.org/snippets/atlassian-marketplace/EEk4

    8熱度

    1回答

    可以將免費單片機翻譯爲任何其他單片機,但給定類型爲Free f x的值時,我想打印整棵樹,而不是將生成的AST的每個節點映射到另一單片機中的某個其他節點。 加布裏埃爾岡薩雷斯uses值直接 showProgram :: (Show a, Show r) => Free (Toy a) r -> String showProgram (Free (Output a x)) = "outp

    2熱度

    1回答

    預先感謝您的幫助 我有2個功能,我想通過Kleisli箭頭組成。這些函數接受String併產生FreeC。 kleisli箭頭創建時沒有問題,但編譯器抱怨找不到。我會切出部分代碼進行簡單: import scalaz._ import Scalaz._ import Free.FreeC import Free._ import Kleisli._ trait AppCompose {

    2熱度

    1回答

    有論recently stated: 免費單子是Church數 - 只用(內)仿函數,而不是功能! 他繼續to explain this說: 他們都是一個endofunct(離子|或)由0 - n次 我得到的Church數是一組匿名函數組成,每個數字都有一個組成。我只是不明白這是如何適用於Free Monads。 我的問題是:自由單體是教會數字嗎?

    20熱度

    1回答

    我正在學習Scala中的免費monad,並且我已經組合了一個簡單的代數示例,可以使用貓將其提升爲免費monad。 這裏是我的代數 sealed trait ConsultationOp[A] object consultation { case class Create(c: Consultation) extends ConsultationOp[Unit] case cl

    5熱度

    2回答

    一種方式是說,這是在endofunctors類別的初始獨異,其對象是endofunctors從C到C(某些類別C的),箭頭是它們之間的自然轉換。如果我們把C是Hask,該endofunctor被所謂Functor在Haskell,這是從* -> *函子,其中*代表Hask 通過initiality的對象,從endofunctor t任何映射到一個獨異m在End(Hask)誘導從Free t到m的地

    17熱度

    2回答

    的free MonadPlus定義爲 data Free f a = Pure a | Free (f (Free f a)) | Plus [Free f a] 在自由 4.6用以下的話(changelog)除去: 移除Control.MonadPlus.Free。改爲使用FreeT f [],結果將是守法。 問題是什麼,特別是什麼法律沒有成立?

    17熱度

    2回答

    我想我對自由monad是什麼有一個大概的想法,但我想有一個更好的方式來可視化它。 它是有道理的,免費的岩漿只是二叉樹,因爲這是「一般」,你可以在不丟失任何信息。 同樣,自由monoids只是列表是有意義的,因爲操作順序並不重要。現在在「二叉樹」中有一個冗餘,所以如果有意義的話,你可以把它扁平化。 這是有道理的自由羣那種樣子分形,類似的原因:https://upload.wikimedia.org/