haskell

    0熱度

    1回答

    我正在創建一個將讀取二進制文件的Conduit。東西可能會出錯,所以我需要一個monad來處理一些錯誤;現在Maybe已經足夠了。 我想使用sourceFile,它要求管道monad是MonadResource,這是問題的關鍵。 我從the docs看到,例如, MaybeT m有一個實例,但它需要m已經是MonadResource;事實上,所有情況都是如此。由於我的理解有限,這聽起來像雞與雞蛋,

    1熱度

    1回答

    從FileIO.hs在Functional Programming Course exercise getFile :: FilePath -> IO (FilePath, Chars) getFile = lift2 (<$>) (,) readFile 一行根據其類型簽名,getFile返回IO (FilePath, Chars),這意味着文件名和它的內容的元組。 但我只是不明白爲什麼它

    6熱度

    1回答

    我剛開始學習Haskell。我試圖在列表中找到一個x,其中score x具有最大值。我嘗試了snd (maximum [(score x, x) | x <- codes])這是可行的,但我想知道是否有更快的方法來做到這一點,而沒有實際存儲函數和值。 感謝您的任何建議!

    1熱度

    1回答

    我正在用haskell光澤創建一個簡單的動畫。我希望在第一個4秒時,每個矩形都會將其顏色更改爲較暗的顏色。問題是一個比較長的連接時間後,沒有真的發生 - 所有矩形出現,他們不變色 這是下面的代碼,我用 - window :: Display window = InWindow "Simon" (width, height) (offset, offset) background :: Col

    -2熱度

    1回答

    我創建給出Char列表的功能範圍,給出了同樣的名單,但只能用數字: algarismos :: [Char] -> [Char] algarismos [] = [] algarismos (x:xs) | (isDigit x) =x:(algarismos xs) | otherwise =(algarismos xs) 我得到錯誤信息 error: Variabl

    2熱度

    1回答

    我是新來的哈斯克爾,我目前正在網格遊戲中寫字搜索,可以找到對角線,行和列中的單詞。我使用Data.List.transpose來創建列,但輸出始終會創建新的空字符串。我試過過濾器功能,但它不會改變輸出:filter (not.null) (L.transpose y)。輸出看起來像這樣:["IYYPPOLFHTNMTDI"," ","UTVCGNVAEEZXEIR"," ","PDCPLTRUGS

    1熱度

    2回答

    我的目標是編寫採用一些多態值的函數,並使用typereps表示具體類型的列表。它返回具有相同值的新列表,但已經轉換爲通過typereps指定的具體類型。 讓我們有這樣的值列表:["one", "two"]與-XOverloadedStrings啓用。 分別是,每個的類型是IsString a => a。 typereps的 列表中,我們可以得到在這樣的方式: import Data.Typeabl

    2熱度

    1回答

    考慮: λ: >let m = newMVar "foo" λ: >m >>= readMVar "foo" 我試圖用modifyMVar_: λ: >:t modifyMVar_ modifyMVar_ :: MVar a -> (a -> IO a) -> IO() 通過: λ: >m >>= \mvar -> modifyMVar_ mvar (\_ -> return "b

    1熱度

    1回答

    我試圖程序在Haskell一個函數,它的整數,並且只打印它,如果它是小於或等於10。 在ghci中,執行編程這樣的功能: sayMeUntilTen :: (Integral a, Show a) => a -> String sayMeUntilTen x = if x <= 10 then show x else "Sorry, greater than 10" 的作品。 但是如果我不包括約束

    0熱度

    1回答

    給定值V的整數列表我希望 輸入:maxNumbers 5 [1,4,5,6,8,4,5,8] 輸出:[6,8,8] 我的方法: maxNumbers ::a =>[a] -> [a] maxNumbers n (x:xs) = enumFrom(n < x) + maxNumbers n xs