f# - F#中类型约束的顺序

标签 f# type-constraints

这适用于 F#4.0:

type Something<'a, 'b when 'b :> seq<'b>>() = 

这不会:
type Something<'b when 'b :> seq<'b>, 'a>() = 

Unexpected symbol ',' in type name. Expected '>' or other token.



类型约束的顺序很重要的原因是什么?

最佳答案

因为它在规范中 - 相关部分是这样的(从第 5 节开始):

typar-defns:= < typar-defn, ..., typar-defn typar-constraints_opt>

约束需要最后消除。

在此 typar-constraints必须始终以 when 开头并且不能出现在其他任何地方。

关于f# - F#中类型约束的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544976/

相关文章:

c# - Reflection.Emit 实现接口(interface)的泛型方法约束

f# - 如何在 F# 中编写 csv?

f# - 括号改变函数签名

scala - 如何使用 None 类型约束专门化一个特征?

haskell - 约束以查看一个类型是否为 "satisfies"另一个

c# - 我可以定义一个只接受原始类型的方法吗?

c# - 类型参数的多重约束

f# - 在我应该获取整数的地方获取一个单位

c# - 引用 x64 dll 文件在 C# 中有效,但在 F# 中无效

.net - 那么,既然 F# 已经开源,那么它又是怎么回事呢?