【发布时间】:2011-06-25 00:30:31
【问题描述】:
我正在努力使用 F# 类型签名表示法。例如,假设您有一个折叠功能:
let rec Fold combine acc l =
...
可能有这种类型的签名:
('a -> 'b -> 'a) -> 'a -> list<'b> -> 'a
我会这样理解
具有三个参数的函数:
- 一个函数,它接受一个 'a、a 'b 并返回一个 a'
- 一个'a
- 'b 列表
并返回一个'a。
但是对于我的穴居人大脑来说,将其表达为更有意义
('a, 'b -> 'a), 'a, list<'b> -> 'a
我确定参数用箭头分隔的方式与函数返回类型完全相同是有语义原因的,但不知何故我错过了它,到目前为止还没有在书籍/文章中找到明确的解释.每次我看到一个类型签名时,我都必须停下来花很多时间来理解它。我觉得我只是错过了使“解密”显而易见的那一小块拼图。
谁能赐教?
【问题讨论】:
标签: f#