我的问题永无止境......
我有这个功能:
let hasMany (expr:Expr<'a -> seq<'b>>)
现在我想从seq<'b>
中提取Expr
,因为我需要将其转换为ICollection<'b>
并将其换回新的Expr
- 为什么不呢?从Expr
开始,你需要ICollection<'b>
- 你可能会问一个简单的用户需要先将seq<'b>
转换为ICollection<'b>
,我我试图避免,因为我正在创建一个将被其他人使用的库,而不是我,我想让它变得简单和干净。
简短:如何从seq<'b>
中提取Expr
?
答案 0 :(得分:3)
你的问题对我没有意义。根据您的类型,seq<'b>
中没有expr
- expr
是包含函数的表达式,其中返回 a {{1 }}。例如,通过你已经获得的签名,调用
seq<'b>
因为hasMany <@ id @>
可以被赋予类型id
。但是,'b seq -> 'b seq
显然不包含<@ id @>
!
如果您要求将seq<'b>
转换为Expr<'a -> seq<'b>>
,请尝试以下操作:
Expr<'a -> ICollection<'b>>