我试图为(':)导出一个Typeable实例
我正在使用DataKinds和[*].
我启用了TypeOperators,StandaloneDeriving和PolyKinds
我无法派生出一个可输入的实例
我试过了
deriving instance Typeable (':)
Run Code Online (Sandbox Code Playgroud)
和
deriving instance Typeable ':
Run Code Online (Sandbox Code Playgroud)
和
deriving instance Typeable ((':))
Run Code Online (Sandbox Code Playgroud)
但他们都得到解析错误.
我知道如果我写
data List a = Cons a (List a) | Empty
deriving instance Typeable (Cons)
Run Code Online (Sandbox Code Playgroud)
我得到了预期的结果,但我不想重写我现有的代码来使用自定义列表类型.
我已经使用这个函数创建了一个可以相互作用的lambda函数
static IEnumerable<Func<int>> MakeEnumerator(int[] values)
{
for (int a = 0; a < values.Length; a++)
{
yield return () => Values[a];
}
}
Run Code Online (Sandbox Code Playgroud)
我无法使用LINQ将其反转或转换为数组,而不会将所有值变为最后一个函数.示例代码(注意这只是演示了问题,它不是应用程序中的代码):
int[] start = {1,2,3};
IEnumerable<Func<int>> end = MakeEnumerator(start).Reverse<Func<int>>();
foreach (Func<int> i in end)
{
Console.WriteLine(i());
}
Run Code Online (Sandbox Code Playgroud)
我认为问题出在MakeEnumerator函数中.我如何修改它以使其工作或开始编写有效的替换反向函数.