type-kinds

    9熱度

    1回答

    我很難理解更高類型與更高等級類型。種類非常簡單(感謝Haskell的文獻),我曾經認爲秩序在討論類型時就像善良,但顯然不是!我讀了維基百科文章無濟於事。那麼有人可以解釋什麼是排名?高級排名是什麼意思?更高級別的多態性?這是怎麼來的種類(如果有的話)?比較斯卡拉和哈斯克爾也會很棒。

    12熱度

    1回答

    我正在使用Data.Typeable,特別是我希望能夠生成正確類型的特定種類(如*)。我快到的問題是,TypeRep允許我們做如下(以GHC與7.8版本的工作): let maybeType = typeRep (Proxy :: Proxy Maybe) let maybeCon = fst (splitTyConApp maybeType) let badType = mkTyConApp

    6熱度

    2回答

    所以comonad.com有一系列與applicatives一起工作的有趣文章,我一直在努力把我能夠帶到scala(爲了好玩和學習)。於是,Haskell的定義FixF - newtype FixF f a = FixF (f (FixF f) a) 上寫着,」 FixF是一種((* -> *) -> * -> *) -> * -> *)這需要的固定點。‘二階函子’(即發送一個仿函數到另一個函

    4熱度

    1回答

    Hello。我正在與依賴於Haskell現代特徵的象牙圖書館玩耍。其中,它定義了接受所有類型的類型IvoryType和接受特殊類型Area的IvoryArea。定義如下: {-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE Ex

    5熱度

    1回答

    符合遇到問題,類型爲「種」: trait Sys[ S <: Sys[S]] trait Expr[S <: Sys[S], A] trait Attr[S <: Sys[S], A[_]] def test[ S <: Sys[S]]: Attr[S, ({type l[x<:Sys[x]]=Expr[x,Int]})#l] = ??? 這種失敗 error: kinds of the

    3熱度

    1回答

    我不明白爲什麼這個工程: module Records where type Element e = { element :: String, label :: String | e } type Sel = (value :: Number, values :: [Number]) type Select = Element Sel 雖然這說Cannot unify # * wit

    4熱度

    1回答

    說我們有定義爲 data A a = A' a deriving Show 數據類型我們有 A :: * -> * 然後我們就可以使Functor一個實例使用的「FMAP般」的功能: instance Functor A where fmap f (A' x) = A' (f x) 這使我們能夠A類型的值,並使用fmap到App LY到包裹值的函數現在 Prelude> let x =

    5熱度

    1回答

    假設我有一個多態類型,其中一個參數是更高類型的變量(* -> *)。 data Tricky m = Tricky { numbers :: m Int, genesis :: m String } 是否有一種通用的方式爲這些類型派生實例而不使用神祕和不安全的語言擴展? 我試圖使StandaloneDeriving,這樣我可以指定上下文: deriving instance Show (m I

    3熱度

    1回答

    說我有這樣的: data Animal = Dog | Cat :t Dog Dog :: Animal 很公平。 :k Dog <interactive>:1:1: Not in scope: type constructor or class ‘Dog’ A data constructor of that name is in scope; did you m

    2熱度

    1回答

    我明白以下幾種: String :: * [] :: * -> * (->) :: * -> * -> * (,) :: * -> * -> * 但什麼是這種意思,可能它代表什麼類型? ? :: (* -> *) -> *