我需要根据传递给另一个函数的函数返回一个不同的值。标准ML:返回不同的类型
因此,考虑到:fun inc x = x + 1;
和:fun double [] = [] | double (h::t) = 2*h::double (t);
你应该能够调用我的工作有任何的功能。
调用示例(我正在做的功能名为test):
test (inc, 5);
- 它会返回
- 或 -
test (double, [1,2,3,4]);
- 它会返回[ 2,4,6,8]
我知道函数不能在面值上做到这一点,但这是可能的,通过层的抽象重刑?
*即使有*一种方式 - 如果是答案,你可以提出错误的问题。为什么你认为你需要它,为什么你不能使用'map'和singleton列表? – delnan 2010-09-02 19:04:00
这就是我说“抽象”时的意思。使用'map'是我的第一个猜想,我只是无法弄清楚如何去做。 – Ryan 2010-09-02 20:36:53