haskell

    1熱度

    1回答

    我試圖在Prelude庫中僅使用函數的兩個數字列表之間實現一個點積。我寫了下面的功能: dot :: Num a => [a] -> [a] -> a dot x y = sum $ zipWith (*) x y 我測試如下: main :: IO() main = do let n = 10^6 x = (replicate n 2.0) :: [Double]

    0熱度

    1回答

    使用megaparsec解析源代碼後,我有一個抽象語法樹。在第二階段,我計算每個子樹上的聚合,例如,它包含的變量列表,通過聚合葉值,我想將它們存儲在某個地方,所以我不必稍後重新計算它們。我應該怎麼做? 我已經考慮過這些選項。 的聚集體的值添加到每個節點。我需要修改每個節點的數據類型。 在通用聚合數據類型中包裝每個節點數據類型。 使用具有聚合的泛型節點數據類型,但是恐怕編譯錯誤消息不會那麼清晰。 構

    6熱度

    1回答

    循環,我現在有像下面這樣的結構: class F a where f :: ... default f :: (G a...) => ... f = (some definition in terms of g) class F a => G a where g :: ... default g :: (C a...) => ...

    1熱度

    1回答

    我最近開始學習Haskell,並且遇到了字典問題。我使用一個鍵從字典中獲取整數,GHCi在字符串中使用第一個元素作爲字典的鍵時,打印出一個錯誤「無法與類型Char匹配[Char]」。下面是代碼: import Data.Map mapRomantoInt :: Map String Int mapRomantoInt = fromList[("I",1),("V",5),("IX",9),("

    0熱度

    2回答

    如果矩陣中的每個2x2子矩陣具有偶數行和列,我需要得到一個列表。例如,假設我們有一個4×4的矩陣(1);該函數應該計算它像以下(我只是想指出的是,給定的矩陣可以是任意的n×m矩陣,其中n和m甚至): (1): [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10,11,12], [13,14,15,16] ] sum2x2 of (1):

    0熱度

    1回答

    我試圖安裝哈斯克爾平臺與 釀造桶安裝哈斯克爾平臺 但有以下錯誤。你如何解決它? ==> Satisfying dependencies ==> Downloading https://haskell.org/platform/download/8.2.1/Haskell%20Platform%2 #################################################

    1熱度

    1回答

    我正在嘗試爲FromJSON typeclass寫一個不知何故的通用實例。這個想法是在解析JSON時使用數據類型名稱。我認爲這是GHC應該能夠做到的事情,但到目前爲止,我的嘗試失敗了。最簡單的版本,使用Typeable typeclass如下。 data GetResponse a = GetResponse { getCode :: Int, getItem :: a } deriving (S

    3熱度

    1回答

    使用Bifunctor時,我們可以訪問first和second「地圖」功能。所以基本上這是一個Functor,允許我們以兩種不同的方式fmap。 有沒有像Monoid這樣的東西?一些概念允許我們以兩種不同的方式追加? 例如,假設一個不透明的Matrix類型。它不是列表或矢量矢量列表,我們不知道它是如何在內部構造的,但我們知道可以將行和列附加到它。 會有一些類型的類允許這樣做嗎? class X a

    1熱度

    1回答

    情況 目前我正在處理邊緣檢測的項目。因此我想使用加速陣列來計算算法以獲得更好的性能。不幸的是,我對函數式編程,以及並行編程都很陌生,而且我也不知道什麼是正確的方法。 問題 到給定的圖像轉換爲灰度級或甚至以執行邊緣檢測我需要訪問每個陣列的像素/值。 使用非加速數組(Data.Array包)我可以使用(!) - 運算符來獲得所需的值。 使用加速陣列(該Data.Array.Accelerate封裝)也

    2熱度

    1回答

    我讀書的時候,我發現這種類型的函數elem: Eq a => a -> [a] -> Bool 什麼是Eq a =>是什麼意思?