monoids

    4熱度

    1回答

    我承認這個問題有點不明確,但我想知道爲什麼我從來沒有偶然發現過Haskell中函子monique的類型類。我是否錯過了它,這種缺席是否有充分理由,還是完全是由於歷史原因?恕我直言,下面的繼承圖看起來有點古怪沒有右上角:「這是什麼從Functor箭頭的真正含義是」 Functor | V Applicative ––> Alternative | |

    2熱度

    1回答

    我試圖重構一些現有的代碼into a more monodic approach。現有的代碼包含接口IXInterface和數字如int和bool。這些數字在默認情況下已經有Zero,接口將它作爲屬性gettor,但bool和string沒有。一種方法是將bool和字符串包裝在界面中,但這很麻煩。 我想如果F#語言設法擴展數字的類型,也許我可以爲我的特定情況對字符串和布爾值也這樣做。 module

    0熱度

    1回答

    指數 目前已在基礎庫的一些大的變化,所以我不知道今天慣用的解決方案是否會涉及fmap,Maybe,Monoid,First,Foldable也許其他類。 我想我會需要一個fold的Monoid一個複雜的結構zip [1..],First,a -> Bool和Maybe,但找不到明顯的方式把這些東西組合在一起。 另外,我懷疑這個代碼大部分是在庫中。我只是不確定是否需要編寫類(或多少)以獲得我需要的結

    5熱度

    1回答

    根據定義或一個二元組,二元運算符必須是關聯的,例如, A op (B op C) == (A op B) op C。 的base mconcat definition在Haskell是: mconcat = foldr mappend mempty 因爲我知道mconcat功能的實現細節,就什麼不好,從定義和使用僞造的類羣,其中功能不關聯發生的呢?例如定義減法或除法的實例。 這可能有用,或者我

    3熱度

    2回答

    我正試圖學習monad的概念,我在看這個優秀的video Brian Beckend試圖解釋什麼是monad。 當他談到monoid,這類型的集合,它的組成規則,而這種組合物具有服從2個規則: 聯想:x @ (y @ z) = (x @ y) @ z 集合中的一個特殊的成員:x @ id = x and id @ x = x 我使用@代表組成的符號。 id表示特殊成員。 第二點是我想了解的。爲什麼

    4熱度

    1回答

    您好我正在學習高級斯卡拉的書,我有一些麻煩,從scalaz源understading這段代碼: object Tag { /** `subst` specialized to `Id`. * * @todo According to Miles, @specialized doesn't help here. Maybe manually specialize.

    10熱度

    1回答

    我正在玩type-aligned sequences,特別是我搞亂摺疊它們的想法。 class FoldableTA fm where foldMapTA :: Category h => (forall b c . a b c -> h b c) -> fm a b d -> h b d foldrTA :: (forall b c d . a

    0熱度

    1回答

    如何將列表添加到列表中?假設我想將itemz添加到bagList,這是一個列表列表。我怎樣才能做到這一點? bagList itemz = mappend bagList itemz

    0熱度

    1回答

    我使用funcool/cats,追加獨異用下面的代碼: (m/mappend (maybe/just [1 2 3]) nil (maybe/just [4 5 6]) (maybe/nothing)) ;;=> #<Just [1 2 3 4 5 6]> 什麼是治療nil爲可能/沒有什麼道理呢? 注:該版本是[funcool/cats "1.2.1"

    0熱度

    1回答

    爲什麼摺疊上面的列表沒有幺半羣? length = foldr (\_ n -> 1+n) 0 是不是關聯的,並且具有中性元素0,這樣它應該是一個幺?