BSTのフォールド関数の一般化バージョンでの引数が多すぎます
-
28-10-2019 - |
質問
fold(+)0 sample を実行すると、(+)があまりにも多くの引数に適用されているというエラーが表示されます。なぜですか? ジェネラコディセタグプレ
ジェネラコディセタグプレ関連項目:
折りたたむ
解決
fold
には、最初のパラメーターとしてa -> b -> b -> b
タイプの関数が必要です。これは、3つの引数を取る関数です。一方、(+)
は2つの引数しか取りません。
fold
を変更する必要があるかどうか、または別の関数で呼び出す必要があるかどうかは、正確に何をしようとしているかによって異なります。
他のヒント
問題は、関数を3つの引数に適用していることです。型シグネチャの最初のパラメータがすべてを示しています。 ジェネラコディセタグプレ
(+)は2つの引数しか取りませんが、それを渡すと、これを評価しようとします: ジェネラコディセタグプレ
おそらく二項関数(a-> a-> a)でフォールドしたいと思うでしょう。(+)を使用するとします。結果は次のようになります: ジェネラコディセタグプレ
そこから一般化するのは簡単です。+
を中置されたf
に置き換えるだけです
ジェネラコディセタグプレ
所属していません StackOverflow