gadt

    7热度

    1回答

    何时在GHC中引入GADT? (版本+日期) 此外,它们仍然被认为是语言扩展还是他们现在是Haskell标准的一部分?

    4热度

    1回答

    我试图在Haskell中实现组合逻辑,并且我想写入语言的解析器。我无法通过Parsec解析器工作。基本的问题是我需要一种方法来确保解析器返回的对象输入正确。有没有人有关于如何做到这一点的创意? {-# Language GeneralizedNewtypeDeriving #-} import qualified Data.Map as Map import qualified Text.P

    2热度

    1回答

    在这种code存在重复片段相匹配: insert x (AATree t) = case insert' x t of Same t -> AATree t Inc t -> AATree t insertBlack :: (Ord a) => a -> AANode Black (Succ n) a -> AnyColor (Succ n) a insertBlack

    8热度

    2回答

    F#是一个带OOP的ML。最接近Haskell的广义代数数据类型和类型类是什么?

    1热度

    2回答

    我正在为Coursera的AI Planning课程编程Lispy PDDL解析器。 如何在Haskell中定义Lispy数据类型?

    2热度

    2回答

    我创建了一个非常简单的问题示例,我使用的是GADT和DataKinds。我的真实应用显然更复杂,但这清楚地表明了我的情况的本质。我试图创建一个函数,可以返回任何类型的值(T1,T2)的测试。有没有办法做到这一点,还是我进入依赖类型的领域?这里的问题看起来很相似,但我无法从他们那里找到(或理解)我的问题的答案。我刚刚开始了解这些GHC扩展。谢谢。 similar question 1 similar

    3热度

    1回答

    我想知道是否有有这样的一些方法: ​​ 这里的问题是,我不能定义BinOp两次,而我想这取决于参数类型。 PS:“canonical”的意思是“包含在表达式中的n个变量用范围从0到(n-1)的整数”表示。这是一个不变的,我需要强制我的一些职能。

    4热度

    1回答

    我有仅曾经与两个不同的参数,ForwardPossible和()中使用的GADT: -- | Used when a forward definition is possible. data ForwardPossible = ForwardPossible deriving (Eq, Ord, Typeable, Data, Show) -- | GADT which accepts fo

    4热度

    1回答

    说我有以下GADT: data Stage a b where Comb :: Stage a b -> Stage b c -> Stage a c FMap :: (a -> b) -> Stage a b 我现在想要的是这样的一个功能: run (a `Comb` b) = (a,b) run (FMap f) = (FMap f,FMap id) 我将如何构

    3热度

    3回答

    以下程序类型检查和编译: import Control.Arrow data Ns = Na | Nb | Nc | Nd deriving Show data Net a where Uni :: a -> Net a Serial :: Net a -> Net a -> Net a Branch :: Show a => Net a -> Net (Ne