[英]Haskell's do syntax and its pattern matching behaviour
我目前正在嘗試理解 do 符號,如http://learnyouahaskell.com/for-a-few-monads-more所教導的那樣......這里它應用於簡單的函數而不是 monad。 我不完全理解 do 語法,我很好奇:這是 .. 一樣 如果是這樣,那是為什么。 我是否可以在最后不 ...
[英]Haskell's do syntax and its pattern matching behaviour
我目前正在嘗試理解 do 符號,如http://learnyouahaskell.com/for-a-few-monads-more所教導的那樣......這里它應用於簡單的函數而不是 monad。 我不完全理解 do 語法,我很好奇:這是 .. 一樣 如果是這樣,那是為什么。 我是否可以在最后不 ...
[英]Haskell do notation vs (>>) operator, happstack routing with 'method'
我正在學習 Haskell,我也在嘗試學習 happstack 服務器。 我正在遵循http://happstack.com/docs/crashcourse/index.html#matching-on-request-method-get-post-etc上的指南,他們對“dir”和“meth ...
[英]How does Haskell "desugar" getline in this do block?
我讀過幾本關於 Haskell 的書,但沒有編寫太多代碼,而且我對 Haskell 在某種情況下的作用有點困惑。 假設我正在使用getLine ,這樣用戶可以按一個鍵繼續,但我真的不想以任何有意義的方式解釋那個人的輸入。 我相信這是這樣做的有效方法: 我了解這是在做什么的基本要點。 getLin ...
[英]Little monoid from scratch example in Haskell with a bug while chaining the monoid
我想我已經*部分*理解了幺半群。 但我還有一個問題。 在這種情況下,我不知道 Haskell 想從我這里得到什么。 為什么我不能鏈接我的 monad? 代碼:data Result a = Result a | Err String | Empty instance Semigroup (Resu ...
[英]Why >> duplicates right-hand side operand in haskell
我正在尋找重復字符串n次的解決方案。 我從這個解決方案中找到了duplicate n str = [1..n] >> str 。 我想知道為什么這種方法會重復str 。 我搜索>>並找到了以下幾點:k >> f = k >>= \_ -> f ...
[英]Haskell : non-symmetric nested do-notation and let
我正在通過編寫玩具語言來學習 Haskell。 我想知道如何將 let 與嵌套做的收縮結合起來。 我想寫一些類似的東西(完全常見的用例,但在 do-notation 中使用 State-monad): 更准確地說,我想寫一些像這樣的代碼: 我想我可以寫這樣的東西: 但: 我真的很想知道如何寫一些“ ...
[英]Do-notation and the list monad
我正在學習 Haskell。 我試圖找到一個列表的元素as其總和名單的元素bs ,返回元素作為一個元組: 該代碼有效。 但是為了學習 Haskell,我試圖將其重寫為 do-notation: 然后打字員向我抱怨: 平心而論,我知道會的。 但是既然我不能跳過 Haskell 中的els ...
[英]Making QualifiedDo and ApplicativeDo work together when nesting applicative functors
我想定義應用函子的深度嵌套組合。 例如這樣的事情: 為了簡化創建fooPhases值的語法,我認為(ab)使用QualifiedDo : 令我驚訝的是,它起作用了: 唉,當我向Bind模塊添加類似 applicative 的函數時 然后在Main啟用ApplicativeDo ,我開 ...
[英]Haskell: Compute Cycles with List Monad
-- 1. Graph structure: nodes and adjacency matrix (i.e. the edges) data Node = A | B | C | D | E | F deriving (Show,Eq,Ord) adj :: (Node,Node) -> ...
[英]In what does this simple do notation desugar to?
我正在使用Aeson和Network.HTTP 。 我能夠編碼 json 並將其打印在屏幕上,執行以下操作: 但是我do明白這個表達式脫糖是為了什么。 像這樣的東西: 應該是什么? ? 我只知道如何脫糖: 對此 順便說一句,什么是action ? https://en.m.wikibooks. ...
[英]Do Notation in OCaml
OCaml 是否具有等效於 Haskell 的 Do Notation 的功能? 另一種說法 - 有沒有一種簡單的方法可以更輕松地處理嵌套單子操作......因為這很煩人: ...
[英]How does this trick type-check?
閱讀這篇博文——https://www.haskellforall.com/2021/05/the-trick-to-avoid-deeply-nested-error.html——我意識到我不明白為什么這個“技巧”真的有效這個情況:{-# LANGUAGE NamedFieldPuns #-} ...
[英]Different let in for lines in do block
我想使用 hspec 創建一些具有不同值的測試。 我編寫了以下代碼,該代碼無法編譯,但可以說明我的目標: 如何為每個以it開頭的 ligne 創建不同的inVector 、 inInteger和outVector集? ...
[英]How are state monads / monad transformers desugared inside do notation?
例子sumArray :: Array Int -> State Int Unit sumArray = traverse_ \n -> modify \sum -> sum + n t1 :: Int t1 = execState (do sumArray [1, 2, ...
[英]Type mismatches in Haskell `do` with multiple return values
我有以下代碼,但在編譯時出現幾個錯誤。 我可以從do語句中將兩個變量作為元組返回嗎? ...
[英]Conditional change of State in Haskell
我不知道如何在 Haskell 中對 State Monad 進行有條件的更改。 假設,我在 State Monad 上有一個堆棧。 有了這個,我想寫一個改變它的函數。 例如,我想要一個 bool b和一個值x 。 如果b為True (例如,這可能是我的堆棧不為空的條件),我想從堆棧中pop ...
[英]Inconsistent do notation in functions
為什么這個 function 被允許:-- function 1 myfunc :: String myfunc = do x <- (return True) show x 這不是:-- function 2 myfunc :: String myfunc = do x < ...
[英]Need explanation for basic do block syntax
在 ghci 中,我寫道: 預期結果: 實際結果: 我不明白 output 背后的邏輯。 我認為原因可能與 monad 有關,但我對函數式編程很陌生,我希望有人能解釋一下。 我也嘗試了 List-comprehension 中的等價形式,結果是一樣的,這意味着我在這里誤解了一些基本的東西。 ...
[英]Menu variable not in scope Haskell
我正在嘗試創建一個從文本文件中讀取數據的菜單。 但是我得到了三個錯誤,盡管在 IO() 開始時變量不在 scope 中。 我沒有正確閱讀 txt.file 嗎?我創建菜單的方式是否錯誤? 錯誤 我的代碼 ...
[英]Is IO an instance of Functor just because it is a Monad in the first place?
從LYAH我了解到do符號只是單子風格的語法糖; 從維基書中我讀到的或多或少是一樣的; 所以我的理解是,如果沒有Monad實例,就不會有任何do表示法。 然而,我閱讀了IO類型 ctor 的Functor實例的定義。instance Functor IO where fmap f ac ...