generics - F# 中 OCaml 样式的泛型类型参数的语法是什么?
问题描述
根据这个答案,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)
解决方案
你说的对。您链接到的答案是错误的。type ('a * 'b) someType
在 OCaml 中也无效。多个类型参数也应该用逗号分隔:type ('a, 'b) someType
.
F# 语言(包括其语法)在F# 语言规范中指定。类型的语法参见第 5 章(在 4.1 规范中),类型定义参见第 8 章。
推荐阅读
- android - 向上导航无法返回首页 Fragment
- javascript - 使用 IIFE 函数时未捕获的类型错误
- javascript - 反应中的简单切换钩子
- javascript - 您如何存储具有复杂词法范围的激活记录并将函数作为结果返回等?
- python-3.x - SMTPAuthenticationError 在 /
- python - 如何在 Django Rest Framework 中显示 ManyToMany 字段的值而不是它们的 Id?
- node.js - UUID 依赖项中的 googleapis-common 抛出错误
- kubernetes - 具有一个 Job manager 的单个 Flink Cluster 中的理想任务管理器数量
- python - 当我更改 python pandas 数据框中的索引时,matplotlib 图表发生了变化
- php - Symfony 表单提交后提交填充实体类型