Scala 关于在arity泛型编程中使用shapeless的一些指导?

Scala 关于在arity泛型编程中使用shapeless的一些指导?,scala,types,dsl,generic-programming,shapeless,Scala,Types,Dsl,Generic Programming,Shapeless,所有内容都在标题中,但以下是一些上下文信息: 我正在研究一种特定于领域的语言,以表达网络物理系统中常见的安全设计模式,其中涉及组件复制和交叉检查/投票 目前,该语言是数据流语言家族中的一种外部DSL。组件可以有多个输入和输出,子组件,有点像在凿子中,除了基本类型不限于scala的内置值类型,并且可以是任何用户定义的类型 我想利用Scala的类型系统和shapeless,使模式可以在具有不同数量和类型的输入和输出的组件上进行一次表示、实例化和类型检查,这些模式基本上复制组件N次(将N次提升到类型级

所有内容都在标题中,但以下是一些上下文信息:

我正在研究一种特定于领域的语言,以表达网络物理系统中常见的安全设计模式,其中涉及组件复制和交叉检查/投票

目前,该语言是数据流语言家族中的一种外部DSL。组件可以有多个输入和输出,子组件,有点像在凿子中,除了基本类型不限于scala的内置值类型,并且可以是任何用户定义的类型

我想利用Scala的类型系统和shapeless,使模式可以在具有不同数量和类型的输入和输出的组件上进行一次表示、实例化和类型检查,这些模式基本上复制组件N次(将N次提升到类型级别)然后使用各种投票算法合并多个冗余输出

然而,我很难弄清楚Shapess背后的设计原理,似乎有系统地使用了“Aux”类型的构造函数,而我目前还没有掌握

我们非常感谢您对shapeless的任何帮助

问候,


/Rémi

这篇博客文章揭示了为什么需要“Aux”。您还可以查看一下
Aux
别名。这篇博客文章解释了为什么需要使用“Aux”。您还可以查看有关
Aux
别名的信息。