1

我正在研究Hana,我惊讶地发现它有一个概念type(一种“类型的容器”,类似于没有实际值的单元素元组),但类型(的序列type)是实验特征。

有谁知道为什么?与单一类型的容器相比,类型列表有什么复杂之处?

4

1 回答 1

3

答案基本上就是杰森所说的:

我希望将类型视为 ahana::Sequence但它不会通过法律,因为它不会持有任何类型的值(例如具有运行时状态的值)。

“问题”是 ahana::types不能成为 a hana::Sequence,因为 ahana::Sequence应该能够容纳任意事物,而不仅仅是类型。虽然这可能看起来没什么大不了的,但实际上确实如此。例如,我们也无法满足hana::Monad,因为这需要hana::flatten,其签名是M<M<T>> -> M<T>任意的hana::Monad M。由于hana::types只能保存类型,因此如果不对hana::types<hana::types<int, char>, hana::types<float, long>>整个事物进行特殊处理,您就无法拥有例如。

无论解决方案是什么,我都想找到一个不会破坏 Hana 概念完整性的解决方案,同时仍然允许更高效的编译时间类型列表。

于 2017-06-05T22:15:19.537 回答