gpt4 book ai didi

generics - F# 中 OCaml 样式泛型类型参数的语法是什么?

转载 作者:行者123 更新时间:2023-12-04 01:16:56 29 4
gpt4 key购买 nike

根据 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 上方显示的类型注释,我假设这是公认的语法,但我想知道这是在哪里记录的,以及我是否做对了。 Rider screenshot

最佳答案

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

F# 语言,包括它的语法,在 The F# Language Specification 中指定。 .请特别参阅第 5 章(在 4.1 规范中)了解类型的语法和第 8 章了解类型定义。

关于generics - F# 中 OCaml 样式泛型类型参数的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63198415/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com