あなたの定義にtype
を適用し、それが明確であるかどうかを確認するのがよいでしょう。また、たとえあなたが言語の使用を計画していなくても、関数型プログラミングに興味があるならば、Haskellのようなものが始めるのがより良い場所になるだろうと私は助言できません。それは言って、ここであなたが得るものです:
In [13]: type(square_func)
Out[13]: function
In [14]: type(function_product)
Out[14]: function
In [15]: type(square_func(2))
Out[15]: int
In [16]: type(function_product(square_func, 3))
Out[16]: function
In [17]: type(function_product(square_func, 3)(2))
Out[17]: int
ので不可解な部分は、関数自体であるfunction_product(square_func, 3)
の戻り値の型、おそらく単一の番号を取得し、単一の数値を返すように意図されたものです。あなたがスタイルガイドに従うならば、あなたが使用している状況でlambda
を使用するために、それはルール(または条約)のようなものだ
f = function_product(square_func, 3)
f(2)
あなたは値が変数にどのようにバインドされているかについていくつかの光を投げてください。 – kmario23