haskell

    3熱度

    1回答

    在Haskell中,我們試圖通過不改變變量或傳遞參數來以不可變的方式編寫大部分代碼,而是通過所需的更改從舊的創建新值。 main = do withFile "something.txt" ReadMode (\handle -> do hSetBuffering handle $ BlockBuffering (Just 2048) contents <- hGetCont

    0熱度

    1回答

    我是Haskell的新手,正在寫我的第一個數據結構。 data Nat = Null | N Nat 例如:5是N (N (N (N (N Null)))) 我不得不從Show, Eq, Ord, Num, Enum 創建實例,我寫Eq已經和它的作品。 instance Eq Nat where (==) Null Null = True (==) (N Null) (N

    2熱度

    2回答

    我剛剛發現this post並想知道如何在Haskell中做類似的事情。在下面,我只是簡化了我有困難的部分: 我有一個包含大量2D座標的列表。對於simplicitys的緣故,讓我們假設該列表包含Int座標是所有範圍內的0 - 1023 points :: [(Int,Int)] -- long list of points 的目標現在具有圖像(讓我們說img :: [[Int]]其中img和

    2熱度

    3回答

    的任意數的Haskell列表綜合所以我到目前爲止是這樣的: combs :: [[Char]] combs = [[i] ++ [j] ++ [k] ++ [l] | i <- x, j <- x, k <- x, l <- x] where x = "abc" 因此,這是對於n = 4的工作職能,有沒有什麼辦法,使這項工作爲任意數量的發電機?我可以爲n = 1,2,3等編程,但理

    -3熱度

    1回答

    如何合併兩個字符串。例如,我有兩個列表 ["me","you","he"]和["she","they","it"]。我想要形成一個新的列表,其中每個對應的字符串組合在一起,如 ["meshe","youthey","heit"]。現在的問題是:我怎麼能合併兩個字符串

    2熱度

    1回答

    我目前正在通過Gabriel's tutorial在Nix和Haskell上工作。 在尼克斯有channels和它們所包含 (類似棧LTS版本) 策展組Hackage包和GHC編譯器。 對於每個 LTS版本Stackage顯示了每個Hackage包的GHC編譯器版本和版本號 。在我開始使用頻道之前,我可以在哪裏查找nix頻道的這些信息?

    3熱度

    1回答

    我正在爲類寫一個多米諾骨牌遊戲,無法將自己的頭包裹在自定義類型中。我有: type DomsPlayer = Hand -> Board -> (Domino,End) ... playTurn :: DomsPlayer -> (Int, Hand, Board) playTurn hand1 board1 = (score, hand2, board2) where (dom,

    5熱度

    1回答

    我正在使用堆棧構建靜態鏈接二進制文件,並嘗試向其添加調試符號(以下內容:https://downloads.haskell.org/~ghc/master/users-guide/debug-info.html)。但是GDB報告:no debugging symbols found。 我缺少什麼? 我已經加入到ghc-options在.cabal file:-g -rtsopts並向ld-opti

    3熱度

    3回答

    我所談論的一個例子是takeWhile takeWhile :: (a -> Bool) -> [a] -> [a] 用法示例 takeWhile (< 3) [1,2,3,4,1,2,3,4] == [1,2] 從我可以告訴(< 3)成爲(a < 3)其中a是要檢查在列表中的當前項目。 這是如何在Haskell做,我會怎麼能夠移動其中a去,所以我可以做類似 takeWhile ((len

    3熱度

    1回答

    如何從列表中的'aa'到'zz'獲取字符串? 我知道這很明顯,但不知道解決這類問題的恰當習慣。只要用具體的例子來展示這個想法,我就會找出其餘的。 謝謝。 試圖 (++) <$> ['a'..'z'] <*> ['a'..'z'] 但它不會編譯。