typeclass

    63熱度

    5回答

    我正在玩初學者哈斯克爾,我想寫一個平均功能。這似乎是世界上最簡單的事情,對吧? 錯誤。 看起來Haskell的類型系統禁止使用泛型數字類型的平均值 - 我可以讓它在Integrals列表或Fractionals列表上工作,但不能同時使用它們。 我想: average :: (Num a, Fractional b) => [a] -> b average xs = ... 但我只能得到: a

    2熱度

    1回答

    我一直在玩NEWTYPE包裝我的索引來避免錯誤,我有一些像這樣的代碼: {-# LANGUAGE GeneralizedNewtypeDeriving #-} newtype PersonIdx = PersonIdx Int deriving (Enum, Eq, Integral, Num, Ord, Real, Show) 爲了得到Integral,必須得到其所有的依賴關係

    9熱度

    4回答

    在Haskell中派生實例時,是否可以爲任意類型派生函數,還是僅限於特定函數?

    6熱度

    2回答

    哈斯克爾玩弄了一下後,我偶然發現了這個功能: Prelude Data.Maclaurin> :t ((+) . ($) . (+)) ((+) . ($) . (+)) :: (Num a) => a -> (a -> a) -> a -> a (Data.Maclaurin由包向量空間出口)。所以它需要一個民,功能,另一個民最終收益一個數字。以下工作有什麼魔力? Prelude Data

    4熱度

    2回答

    我想添加deriving (Data)到標準類型。使StandaloneDeriving,FlexibleContexts,DeriveDataTypeable,並且UndecidableInstances擴展後,GHC接受 deriving instance Data Day => Data (Day) 但是,如果我爲DiffTime做同樣的事情,我得到 TemperatureRecor

    0熱度

    1回答

    的瑣碎使用在從this question在(接受)答案出現,我期待下面的工作: Prelude Text.Regex.Posix Text.Regex.Base.RegexLike Text.Regex.Posix.String> makeRegex ".*" (makeRegex是與makeRegexOpts快捷方式預定義選項) 然而,它並不: <interactive>:1:0:

    7熱度

    2回答

    我想實現一個算法,使用ST monad和STUArray s,我希望它能夠同時使用Float和Double數據。 我會演示一個簡單的例子問題:計算一個記憶scanl (+) 0(我知道它可以解決沒有STUArray,只是作爲例子)。 {-# LANGUAGE FlexibleContexts, ScopedTypeVariables #-} import Control.Monad impo

    11熱度

    3回答

    是否有某種方式(任何方式)在類型類中實現約束? 作爲我正在談論的一個例子,假設我想實現一個Group作爲一個類型類。因此,一類是一組,如果有三個功能: class Group a where product :: a -> a -> a inverse :: a -> a identity :: a 但這些都沒有任何功能,但它們必須通過一些約束有關。例如: pro

    8熱度

    3回答

    我正在學習Haskell。我已經創建了函數,它返回乘法表到'b'的基數'n'。數字填充爲'w'數字。作爲最後一步,我想自動計算'w'。爲什麼不能編譯? -- Number of digits needed for the multiplication table n*n in base 'base' nOfDg :: Int -> Int-> Int nOfDg n base = 1 + fl

    3熱度

    3回答

    試圖創建一個基類,我可以從中派生出不同類型。以下有什麼問題? class (Eq a) => MyClass a data Alpha = Alpha instance MyClass Alpha where Alpha == Alpha = True 我得到的錯誤: test.hs:5:10: `==' is not a (visible) method of class `