F#中的参数化区分联盟

时间:2012-10-02 10:31:06

标签: f# discriminated-union

  

可能重复:
  Typed abstract syntax tree with function application

我想要以下

type t<'a>=
  | Val of 'a
  | Apply of (('a -> 'b) -> t<'a> -> t<'b>) * t<'a>
  | Apply2 of (('a -> 'b -> 'c) -> t<'a> -> t<'b> -> t<'c>)* t<'a> * t<'b>

也就是说,Apply接受一个函数和一个t,并将f应用于t的“内容”。

但是它要求t<'a, 'b, 'c>,这意味着我必须为所有t<_>使用三个参数。有没有办法绕过它?

非常感谢您的见解

0 个答案:

没有答案