【发布时间】:2011-03-16 13:23:50
【问题描述】:
全部,
这是我需要转换为 ML 表达式的类型表达式:
int -> (int*int -> 'a list) -> 'a list
现在我知道这是一个采用 2 个参数的柯里化风格表达式: 第一个参数 = 类型 int 第二个参数 = 函数,它接受前一个 int 值两次并返回任何类型的列表
我很难找到这样一个函数,它需要 int 并返回 'a list。
我是 ML 新手,因此这对其他人来说可能是微不足道的,但显然不是我。
非常感谢任何帮助。
【问题讨论】:
-
我必须补充一点,从类型签名派生 SML 表达式并没有多大意义。类型签名只告诉你故事的一部分。本质上,对于给定的类型,可能有无限多的表达式存在于该类型中。只有当你知道你想要它做什么时,为它指定一个类型才有意义。您使用该组合意图和类型来编写实现。例如,签名 'a list -> 'a list 可以是排序函数、反向函数或任何数量的其他事物。它没有告诉你足够的编写函数。
标签: functional-programming types sml