开发者

using free bound generic type as type parameter

Do you see a way to specify that my result type have to be MonadType< arg type > within this interface ?

inter开发者_开发百科face IMonad<MonadType>  //  where MonadType : GenricType<>
{
    MonadType<T1> unit<T1>(T1 t)
    Func<MonadType<T1>, MonadType<T2>> map<T1, T2>(Func<T1, T2> f);
}

I get as an error : The type parameter 'MonadType' cannot be used with type arguments


No, you can't do this with .NET generics. What you want to do is to specify that the MonadType type parameter must itself have one generic parameter; the .NET type system can't represent that constraint.

Here's one approach to faking generic monads in C#: http://sandersn.com/blog//index.php/2010/04/23/faking-type-classes-in-c

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜