haskell

    4熱度

    2回答

    我有一個函數正在執行某些特定數據類型的工作。我想知道我能不能把它變成一般人。下面是它的標誌性的通用版本: f :: Monad m => ((a -> b) -> c -> d) -> (a -> m b) -> m c -> m d 如果以上不能寫,或許更受限制的版本可以? f2 :: Monad m => ((a -> a) -> b -> b) -> (a -> m a) -> m b

    3熱度

    1回答

    鑑於年底追加: mangle :: String -> String ,我想要做的事,如: mangle xs = head xs -- works if you change typesig to [a] -> a 但: mangle xs = tail xs ++ head xs -- won't work at all! 會喜歡在列表末尾添加列表的第一個字符,切割第一個字符。

    -2熱度

    1回答

    我是Haskell語言中的新成員,我想爲現在正在處理的haskell程序創建一個makefile。但我不知道該怎麼做。 謝謝:)

    -3熱度

    2回答

    我得到了一個使用模式匹配定義的Haskell函數,但我不是很明白爲什麼它看起來像它的樣子。 safeTail (x : xs) = xs 我不是特別明白在(x:xs),這是什麼意思?

    1熱度

    1回答

    我正在嘗試爲項目的Haskell分配運行ghci。然而,它給了我此錯誤消息: /usr/local/haskell/ghc-8.2.1-x86_64/lib/ghc-8.2.1/bin/ghc: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or d

    0熱度

    1回答

    剛剛遇到了一件對我來說似乎很陌生的東西。反引號的功能類似於句法操作符。 applyOp :: Int -> (Int -> Int -> Int) -> Int -> Int applyOp x op y = x `op` y > applyOp 2 (+) 5 7 我很驚訝地看到這一點。我一直認爲反引號需要包圍一個運營商符號或標識符,而不是一個可以在執行過程中綁定到運營商的標識符。我

    -2熱度

    2回答

    所以我需要在Haskell中創建一個Set數據類型。 所以,我的問題的第一部分,我需要定義 type Set a = ... 我把它設置爲 type Set a = Set [a] 因爲套裝也只是α的名單,對不對? 或者,將正確的方式做到這一點是 type Set a = ([a]) 然後,在接下來的一部分,我需要實現的功能 setSuchThat :: (a -> Bool) ->

    2熱度

    1回答

    我想通過具有給定出發點和目的地的圖來獲取所有可能路徑列表的列表。 該圖給出如下: data Node = N1 | N2 | N3 | N4 | N5 deriving (Show, Eq) neighbor :: Node -> [Node] neighbor N1 = [N2, N4, N5] neighbor N2 = [N1, N3] neighbor N3 = [N1, N4,

    1熱度

    4回答

    我試圖讓this sitemap clas工作。 它似乎使用LINQ,我從來沒有用過,但編程的一半樂趣是學習新東西! 我的問題是,我得到LINQ代碼的編譯錯誤。 VS只是不認識它。我有一個參考system.data.linq,我有一個進口system.data.linq,但仍然在代碼讀取,「Dim folders = From o在Directory.GetDirectories ...」,它告訴

    4熱度

    2回答

    給定某個數據類型的兩個項t1 t2,是否有某種方法可以檢查t1和t2是否以相同構造函數開始,而不在構造函數中進行窮舉或模式匹配?就像如果我喜歡的類型要麼是B,那麼我想 checkConst (Left x) (Left y) = True checkConst (Right x) (Left y) = False ... 等實際上不這樣做,模式匹配,並在某種程度上是普遍適用於其他類型的用1