我有問題,我不知道如何決定我的函數indexJ必須在每個步驟中選擇什麼子樹遍歷我的平衡二叉樹 - JoinList。 這個想法是給緩存每個子樹的大小(數據元素的數量)。然後可以在每個步驟中使用它來確定所需的索引是在左邊還是右邊。 我有這樣的代碼: data JoinList m a = Empty
| Single m a
| Append m (JoinLis
我在記錄中使用了以下代碼,該記錄具有類型爲SceneGraph的字段'_scene'。我使用makeLenses爲它創建了鏡頭。 inputGame :: Input -> Game -> Game
inputGame i g = flip execState g $ do
let es = g ^. userInput . events
sg = g ^. scene
我正試圖將haskell示例轉換爲scalaz。最初的例子是這樣的: ("Answer to the ", (*)) <*> ("Ultimate Question of ", 6) <*> ("Life, the Universe, and Everything", 7)
其中,只要我能夠理解,使用this實例。 它沒有得到轉化字面上scalaz: scala> ("Answer to th
調試無窮和說我有一個功能(它沒有任何實際的應用,只是一個學術興趣,從而奇怪的方式寫出來,與類羣,應用性函子與不動點組合子) f :: Num a => a -> Sum a
f = fix ((<>) <$> Sum <*>)
它是typechecks,但我不能確定它在我測試它之前會做什麼。 如何進行測試和/或調試?我的意思是像幾次迭代後看到結果一樣,如take 10 [1..]。 我知道一
我正在學習通過學習你一個Haskell,並且我正在關於monoids的部分。在本節中,作者定義了一棵樹的foldMap方法,如下所示: instance F.Foldable Tree where
foldMap f Empty = mempty
foldMap f (Node x l r) = F.foldMap f l `mappend`
f x
我正在寫一個函數pad,它需要一個列表並填充它,直到它達到一定的大小。我試過2個實現: pad :: Monoid a => Int -> [a] -> [a]
pad len list = replicate (len - length list) mempty ++ list
和 pad :: Int -> a -> [a] -> [a]
pad len value list = re
GHC有一些語言標誌,例如DeriveFunctor,DeriveDataTypeable等,它們使編譯器能夠生成除Haskell 98允許的類型之外的類型類的派生實例。這對於類似Functor之類的東西尤其有用,其中該類的法則指定一個明顯的「自然」派生實例。 那麼爲什麼不爲Monoid?這似乎是與一個單一的數據構造的任何數據類型: data T = MkT a b c ...
一個能機械地產
我有一個Haskell類型來使一個Map有幾個與某個鍵相關的值。 如果我編譯下面的代碼: type Mapa k v = Map k [v]
instance Monoid (Mapa k v) where
--mempty :: Mapa k v
mempty = DM.empty
--mappend :: Mapa k v -> Mapa k v -> Map