ruby の関数型プログラミングの部分を理解するために、引数として 2 つの関数 f(x,y),g(x) を受け取り、新しい関数 h(x,y)=f(g(x(x) ),g(y))。
def foo(x, y)
return x+y
end
def bar(x)
return 2*x
end
def comp(f,g)
end
f=comp(f,g)
f(1,2) #=> 6
私は次のようなことを試しました
def comp(f,g)
mylambda = lambda {|x,y| return f(g(x),g(y))}
return mylambda
end
f=comp(foo, bar)
f.call(1,2)
f は Proc になると思っていたので、そのまま呼び出すことができました。しかし、明らかに「`foo': 引数の数が間違っています (2 の場合は 0) (ArgumentError)」
どの構文を使用する必要がありますか? また、Proc の代わりに「実際の」関数を返すことは可能ですか?