在C ++中,我们可以定义一个函数,它使用variadic templates来获取可变数量的静态类型参数,如下所示:
template<typename... Params> void f(Params... parameters);
(或者我们可以创建一个具有可变数量字段的结构,并将其用作f
的参数。)
我们还可以使用类型特征来检查值。我想在Haskell中做类似的事情。
我希望使用参数化数量的静态类型参数定义数据类型和函数族:
data T ??? = ...
mkT :: ... -> T ???
f :: T ??? -> ...
f
需要能够将参数类型转换为值,这样我们才能对它们做一些通用的事情(想想printf)。
也许是HLists的工作?