ML中的复合功能

时间:2013-11-10 04:38:04

标签: ml infix-notation

我需要在ML中编写一个函数化合物,其行为如下:

Compound接收bin op f,int n和值x,并将运算符应用于x N次。这是一个例子:

compound f 0 x = x
compound f 1 x = x f x

我是ML的新手,所以我无法理解如何编写这个功能。我将非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您必须编写一个简化版foldlfoldr的函数,具体取决于f关联性。但是,由于您在示例中错过了括号,我认为f是正确关联的。

代码将针对您的foldr案例:

fun compound f x 0 = x
  | compound f x n = f(x, compound f x (n-1));