2

次のように動作する関数複合を ML で記述する必要があります。

Compound は、bin op f、int n、および値 x を受け取り、演算子を x に N 回適用します。次に例を示します。

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

私は ML の初心者なので、この関数の書き方がわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

1

結合性に応じて、foldlまたはの簡略化されたバージョンである関数を作成する必要があります。しかし、あなたの例では括弧を逃したので、右結合的だと思います。foldrff

コードはあなたのfoldr場合になります:

fun compound f x 0 = x
  | compound f x n = f(x, compound f x (n-1));
于 2013-11-11T00:58:20.777 に答える