那么,如何在F#中编写通用的委托声明?
我想获得与此C#声明等效的声明:
public delegate Result<TOutput> Parser<TInput, TValue>(TInput input);
我还没有找到关于如何实现这一点的文档,尽管编写通用委托是相当常见的。
有什么想法或指针吗?
type Parser<'TInput, 'TOutput> = delegate of 'TInput -> Result<'TOutput>
'TInput
。Func
委托定义一个类型别名,或者(当您不打算从C#调用此函数时)定义一个普通的F#函数。// Alias for a standard .NET delegate
type Parser<'TInput, 'TOutput> = System.Func<'TInput, Result<'TOutput>>
// Alias for a normal F# function
type Parser<'TInput, 'TOutput> = 'TInput -> Result<'TOutput>