typeclass

    7熱度

    1回答

    下Haskell的類型類和實例: class Able a where able :: a -> Int instance Able Int where able x = x 通常翻譯爲斯卡拉,像這樣: trait Able[A] { def able(a: A): Int } implicit object AbleInt extends Able[I

    5熱度

    1回答

    一個類型類從編程斯卡拉書所採取的示例: case class Address(street: String, city: String) case class Person(name: String, address: Address) trait ToJSON { def toJSON(level: Int = 0): String val INDENTATION =

    7熱度

    2回答

    我從列表中知道的大多數方法實際上是一些衆所周知的類型類的特例。的方法的一些實例和相關類型的類: map :: (a -> b) -> [a] -> [b]和Functor foldr :: (a -> b -> b) -> b -> [a] -> b和Foldable forM :: Monad m => [a] -> (a -> m b) -> m [b]和Traversable concat

    1熱度

    2回答

    從ghci的: Prelude> :i Num class Num a where (+) :: a -> a -> a (-) :: a -> a -> a (*) :: a -> a -> a negate :: a -> a abs :: a -> a

    1熱度

    2回答

    我已經做了類型的類的實例時有問題,並提出列表類型的類的實例,但我得到它,我不明白 class MyType a where listsum:: a->a->Double instance (Num a)=>MyType [a] where listsum x y = sum $ zipWith (-) x y listsum返回錯誤單值但這是錯誤,我得到: Could not

    3熱度

    1回答

    在Haskell,如果我有兩個功能是這樣的: defEither ∷ Either l r → r → r defEither eith defVal = either (const defVal) id eith 和 defMaybe ∷ Maybe a → a → a defMaybe m d = fromMaybe d m 我怎樣寫一個類型的類(或其它類似效果),使得我可以概括的

    0熱度

    1回答

    我通過一些在LYAH的例子讀,我碰到這個代碼片段來到之間使用: replicate' :: (Num i, Ord i) => i -> a -> [a] replicate' n x | n <= 0 = [] | otherwise = x:replicate' (n-1) x 這是網絡版,但我也有一個這本書的副本,它有這個代替: replicate' :: Int

    0熱度

    1回答

    所以我打這件事 {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies #-} import Data.Monoid class Monoid m => Mconcat m a | a -> m where mcon :: m -> a instance Monoid m =>

    1熱度

    1回答

    我剛剛學習Haskell,並希望開發我的第一個遞歸ADT。 我的數據類型Figure應該能夠表示矩形和圓的任意組合,並且方法area應該計算圖的總面積(忽略重疊)。 問題是,對於例如矩形,寬度和高度爲Integer,而面積的結果應爲Double(或至少一個浮點數)。 data Figure = Rect { x :: Integer, y :: Integer, width :: Integer,

    1熱度

    1回答

    在下面的代碼拉皮條upd是可用於Map(從我試圖延伸到SortedMapQuicklens支撐萃取),但不用於SortedMap。 爲什麼 - 以及如何更改代碼以便UpdatedMap負責SortedMap(和其他可能的Map子類)? object TImpl extends App { trait UpdatedTrait[A, K, T] { def upd(k: K,