ここに私のコードがあります:
def f x
x
end
g = method(:f).to_proc.curry.(123)
p g
g
パラメータをとらず、 に適用される callable123
になりたいですf
。代わりにg
、アプリケーションの結果が含まれます。
私はそれを複雑な方法でやっていますか?
編集:はい、g = lambda {f 123}
動作しますが、カレーの方法を尋ねていますf
。
ここに私のコードがあります:
def f x
x
end
g = method(:f).to_proc.curry.(123)
p g
g
パラメータをとらず、 に適用される callable123
になりたいですf
。代わりにg
、アプリケーションの結果が含まれます。
私はそれを複雑な方法でやっていますか?
編集:はい、g = lambda {f 123}
動作しますが、カレーの方法を尋ねていますf
。
カレーのドキュメントには、
十分な数の引数が指定されている場合、指定された引数を元のプロシージャに渡し、結果を返します。
したがって、この場合、理論的な観点からは実際には関数をカリー化していませんが、実際にはカリー化しています。の
g = lambda {f 123}
少なくともすべての引数が決定されたら、評価するために呼び出すことができる関数を返すという精神に近いようです。