f と g の 2 つの関数があり、しようとしてreturn f(g(x))
いますが、x の値がわからず、どうすればよいかわかりません。
より具体的な例: 関数がf = x + 1
ありg = x * 2
、しようとしている場合、次return f(g(x))
の関数を取得する必要があります。(x*2) + 1
あなたはそれを正しく持っているように見えます、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)