高次関数(関数1)でコードを書くことが割り当てられています。しかし、なぜ私はそれを通常のもの(関数2)の代わりに書くべきかわかりません。高次機能が優れていると誰かが私を見せてくれたら本当に感謝します。高次関数 - Python
# Function 1 (High order):
def high_function (L):
def function (x):
total = 0
for i in range(len(L)):
total = total + x **(len(L) - 1 - i) * L[i]
return total
return function
# Function 2 (Normal):
def high_function (L, x):
total = 0
for i in range(len(L)):
total = total + x **(len(L) - 1 - i) * L[i]
return total
ので。 –
あなたはこれを質問として言い換えることができますか?意見の問題ではないことが望ましいでしょうか?あなたがスタイルや練習の議論をしたいのであれば、dreamincode.netのようなサイトでこれらの質問を奨励しています。 –
まあ...これは一種の高次ですが、もっとも一般的な種類の高次関数ではありません。この変換は、マルチパラメータ関数を関数を関数に返す関数に変えるカリー同型写像(curry isomorphism)と呼ばれます。高次関数は他の関数を受け入れる場合に便利です。つまり、関数はパラメータの1つになります。このタイプのコードはPythonの文脈ではあまり意味がないと私はあなたに同意します。 – HuStmpHrrr