4

f と g の 2 つの関数があり、しようとしてreturn f(g(x))いますが、x の値がわからず、どうすればよいかわかりません。

より具体的な例: 関数がf = x + 1ありg = x * 2、しようとしている場合、次return f(g(x))の関数を取得する必要があります。(x*2) + 1

4

1 に答える 1

5

あなたはそれを正しく持っているように見えます、f(g(x))うまくいくはずです。なぜreturnそこにキーワードがあるのか​​わかりません(ocamlのキーワードではありません)。これが正しいバージョンです、

let compose f g x = f (g x)

このための型の定義は、

val compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c = <fun>

それぞれ、'a、' b、'cは抽象型です。それらが何であるかは関係ありません。定義で一貫している必要があります(したがって、のドメインはgの範囲内である必要がありますf)。

let x_plus_x_plus_1 = compose (fun x -> x + 1) (fun x -> x * 2) 
于 2010-04-29T04:14:05.937 に答える