【问题标题】:What is the syntax for OCaml style generic type parameters in F#?F# 中 OCaml 样式的泛型类型参数的语法是什么?
【发布时间】:2020-07-31 20:02:57
【问题描述】:

根据this answer,F# 支持 OCaml 样式类型参数。问题中的例子是:

type 'a NestedList = List of 'a NestedList list | Elem of 'a

但是,我在 F# 文档的任何地方都找不到此语法,而且我无法让 F# 编译器接受我提供链接的答案中的语法。 编译器不接受这种使用多个参数的尝试:

type ('a * 'b) SomeType = ('a * 'b)

但是,这有效:

type ('a , 'b) SomeType = ('a * 'b)
let x:SomeType<int,int> = (4,5)

根据 Rider 在 x 上方显示的类型注释,我假设这是公认的语法,但我想知道这是在哪里记录的,以及我是否做对了。

【问题讨论】:

    标签: generics f# ocaml


    【解决方案1】:

    你是对的。您链接到的答案是错误的。 type ('a * 'b) someType 在 OCaml 中也无效。多个类型参数也应该用逗号分隔:type ('a, 'b) someType

    The F# Language Specification 中指定了 F# 语言,包括其语法。类型的语法参见第 5 章(在 4.1 规范中),类型定义参见第 8 章。

    【讨论】:

      猜你喜欢
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      相关资源
      最近更新 更多