![]() |
1
5
你想要 extensible records 据我所知,这是哈斯克尔谈论最多的话题之一。目前在如何实施这一问题上似乎没有多少共识。 在您的案例中,似乎可以使用类似于中实现的异类列表,而不是普通的记录。 HList .
同样,这里似乎只有两个层次:公共和程序。因此,也许您应该为公共选项定义一个公共记录类型,为每个程序定义一个特定于程序的记录类型,并在这些类型的元组上使用statet。对于常见的内容,您可以添加组成
|
![]() |
2
3
您可以使用以下代码
您在代码中建模什么?如果我们对这个问题了解得更多,我们可以建议一些比这个面向对象的设计更简单的东西,这些东西被引入到一种功能性语言中。 |
![]() |
3
2
在我看来,这是一份仿制药的工作。如果您可以用不同的newtypes标记您的int,那么您就可以编写(使用uniplate、module platedata):
这将从OPT内的任何位置提取所有其他的。 修改也是可能的。 |
![]() |
4
1
如果将类型实例设置为可折叠,则会得到一个tolist函数,可以将该函数用作访问器的基础。 如果Foldable对您没有任何帮助,那么正确的方法可能是将您想要的接口定义为一个类型类,并找到一种自动生成派生值的好方法。 也许是从做中衍生出来的
你可以使用GMAP组合器来关闭你的访问。 |
![]() |
Terio · Typescript:使用变量的值创建自定义类型 2 年前 |
![]() |
Kareem Adel · 创建函数类型(TypeScript接口) 2 年前 |
![]() |
MatÄj VondráÄek · 如何在c#方法中传递类型? 3 年前 |
![]() |
kreo · 为什么&[T]参数也接受&Vec? 7 年前 |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 7 年前 |