相关疑难解决方法(0)

什么类型的问题有助于"更高通道的多态性"更好地解决?

当我阅读Haskell历史中的一些章节时,我遇到了:

但是,更高级别的多态性具有独立的效用:声明在更高种类上参数化的数据类型是完全可能的,有时非常有用,例如:

data ListFunctor f a = Nil | Cons a (f a)
Run Code Online (Sandbox Code Playgroud)

知道"基本"ADT我在这里有点困惑,我的"猜测"是parens中的部分表示"参数"/"动态" 一元数据构造函数 f?所以任何* -> *"可以接受"类型的数据构造函数a?我的想法是正确的还是我误解了语法?我知道我"只是在猜测",但我希望在这里能够获得一个关于这种能力的"平面程序员"直觉,一些需要(或从中受益匪浅)的示例场景;)大多数我可以想象(只是没有在什么精确的方式)这使得那些"小型嵌入式多功能可递送配置语言"-ADTs更加灵活,Haskell很高兴能够evals为... 编写和编写?

在GHCi中,:i ListFunctor基于以上给出:

type role ListFunctor representational nominal
data ListFunctor (f :: * -> *) a = Nil | Cons a (f a)
Run Code Online (Sandbox Code Playgroud)

所以这似乎是从更加清晰的data宣言中"推断出来的" .

polymorphism haskell higher-kinded-types

7
推荐指数
1
解决办法
366
查看次数