io-monad

    0熱度

    2回答

    我: stuff :: IO [String] doThings :: String -> IO [()] ,我想 stuff >>= doThings ,但我的類型了。我想本質上做一個提升的綁定,但我所嘗試的一切都很微妙。

    4熱度

    1回答

    我有,如IO上下文幾個數據類型: a :: IO String b :: IO FilePath c :: String -> IO String 欲把它們放在一起在一個數據對象像: data Configdata = Configdata String FilePath (String -> String) 所以我沒有得到自己的每個值了IO方面的,但剛出來的IO Configdata

    1熱度

    1回答

    的bind函數(>>=)具有簽名: m a -> (a -> m b) -> m b 然而,我想與簽名功能: m (t a) -> (a -> m (t b)) -> m (t b) 具體來說,我有一個給定的整數的函數,它返回一個整數列表中的IO內: f :: Int -> IO [Int] 但我想將它應用到IO of list of Integers,我不能使用常規綁定函數,因爲它包

    0熱度

    1回答

    我第一次嘗試使用Scotty,我似乎無法讓我的GET請求過去。返回的響應類型 IO (Response bytestring-0.10.8.1:Data.ByteString.Lazy.Internal.ByteString) 我知道我需要將其轉換爲一個類型,可以是由斯科蒂輸出,但我無法弄清楚如何做到這一點。 我完整的代碼: {-# LANGUAGE DeriveGeneric #-} {

    1熱度

    1回答

    在Haskell中,如何去寫入任意大量的文件? 舉個例子,假設我想把a到z這兩個字母放在一個文件名裏面,這個文件的內容是字母。最初的嘗試是做到以下幾點: main :: IO() main = do let letter = map (:"") ['a'..'z'] zipWith writeFile letter letter 這將產生以下錯誤: Couldn't

    4熱度

    1回答

    我有一個非常簡單的抽象來處理可以回滾(在某種程度上)的IO動作序列,即如果動作寫入文件,則回滾將刪除此文件或動作創建一個目錄樹,修剪它會回滾等 data IOAction = IOAction { execute :: IO(), rollback :: IO() } executeAll :: [IOAction] -> IO() executeAll [] = re

    4熱度

    2回答

    我想弄清楚如何使用scalaz7 IO和monad變壓器以優雅的純功能風格編寫這段代碼,但僅僅是無法讓我的頭轉向它。 試想一下,我有這個簡單的API: def findUuid(request: Request): Option[String] = ??? def findProfile(uuid: String): Future[Option[Profile]] = redisClient.g

    0熱度

    1回答

    我想使用monads在haskell中編寫一個循環,但我很難理解這個概念。 有人能給我提供一個while循環的簡單例子,而有些條件是滿足IO操作的嗎?我不想要一個抽象的例子,而是一個真正具體的例子。

    0熱度

    1回答

    我有一個 foobar :: IO (ParseResult [(String,String)]) ParseResult在這裏定義的單子:https://hackage.haskell.org/package/haskell-src-exts-1.13.5/docs/Language-Haskell-Exts-Parser.html#t:ParseResult 我想利用這些字符串,並將其寫入

    3熱度

    2回答

    我正在寫一個函數,它會接受任意列表,並將它們進行比較以查看其中是否是另一個列表的子列表。對於stdin,我想要求用戶提供兩個列表,但我無法弄清楚接受任意類型的方法。這是我到目前爲止的代碼: 1 main :: IO() 2 main = do 3 l1 <- getLine 4 l2 <- getLine 5 print $ sublist (read l1 :: [Int]) (r