【发布时间】:2012-11-06 21:35:01
【问题描述】:
谁能向我解释一下如何找出下面定义的函数 fold 的类型?
fun fold func [] base = base
| fold func (x::xs) base = fold func xs (func x base);
我的答案是'c->'a list->'b->'b,但我发现在将代码插入我的SML程序后,类型实际上应该是('a->'b-> 'b)->'a 列表->'b->'b.
我知道 'a list->'b->'b 来自哪里,但第一部分让我感到困惑。是不是因为 func 接受两个参数,一个 'a 和一个 'b,并返回 base 的类型,即 'b?
任何帮助将不胜感激。
【问题讨论】: