問題タブ [fold]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
2186 参照

haskell - BST が有効かどうかを確認するにはどうすればよいですか?

BST の定義が与えられ、BST のフォールドの一般化されたバージョンを使用している場合、BST が有効なものであるかどうかを確認するにはどうすればよいですか?

ノード値が左サブツリーのすべての値よりも大きく、右サブツリーのすべての値よりも小さいことを確認するという考え方です。Trueこれは、ツリー内のすべてのノードに対して行う必要があります。関数bstListは、BST の (順序付けられた) 値のリストを単純に出力します。

もちろん、次のようなものは機能しません。

たとえば、fold 関数をノードに適用すると19all (<19) (bstList True) && all (>19) (bstList True).

BST

0 投票する
1 に答える
1792 参照

haskell - ツリーの一般化されたfoldr関数?

一般的な Haskell ツリー用の一般化された folderr 関数を作成するにはどうすればよいですか?

私は最初の引数の定義で立ち往生しています...

編集:リストの使用を避けて、より一般化されたバージョンはどうですか? 詳細はこちら

0 投票する
3 に答える
1295 参照

haskell - 一般的なHaskellツリーで使用するための一般化されたfoldrとfoldl?

この定義が与えられた場合、一般化された Haskell ツリーの一般化されたfoldrおよびfoldl関数をどのように記述できますか?

Haskellでfoldr関数とfoldl関数がどのように機能するかを理解できたとしても、ツリー用のこの一般化された関数をどのように記述するかはよくわかりません。

編集:私はこのようなことを試しました(コンパイルさえしません):

EDIT 2:もう一度試してみてください...

treefoldr動作していますが、動作していtreefoldlません:

0 投票する
3 に答える
869 参照

scala - 2 番目の要素から始まる foldLeft の代替

私は次のようにList定義しています:

文字列に変換したい

1 つの方法は次のとおりです。

もっとエレガントな方法はありますか?

[編集: 詳細説明]

Easy Angel の答えは、要素にl「意味のある」toString方法がある場合に機能します。

私はlasList[String]を持っていますが、次のように、メソッドをlオーバーライドしないカスタムタイプのリストにすることができます:toString

方法もあります

したがって、デフォルトメソッドgetMyの出力の代わりに の出力を使用したいと思います。toString

0 投票する
3 に答える
1649 参照

list - Erlang:最小関数をリストフォールドとして書くことは可能ですか?

与えられた関数:

これを関数foldlでこれと同じように使用できますか?

リストの残りの部分と比較される初期値を設定する必要があるため、それは不可能だと思います。たとえば、私が考えることができる恒等関数はありません。私は正しいですか?

構文はErlangで書かれていますが、Erlang以外のプログラマーも読めるようにする必要があります。

0 投票する
1 に答える
186 参照

function - F# の + は何ですか?

なぜ私は次のようなことができないのですか

0 投票する
4 に答える
9126 参照

scala - Option に fold メソッドがないのはなぜですか?

なぜこのようなscala.Optionメソッドfoldが定義されていないのだろうか:

に相当

map+を使用するよりも良いことはありませんgetOrElseか?

0 投票する
3 に答える
3173 参照

list - Haskellのリストの再帰

たとえば、['a'、'b'、'c'、'd'、'e']のようなリストがあります。
次のようなことをしたい:
最初に最初の2つの要素f'a''b'で何かをし、
次にfの戻り値とリスト内の次の要素で同じことをするresult = f'a''b '、f結果'c'のようにしましょう。次に、f resultof(result'c')'d'など。
どうすればこのようなことができますか?

0 投票する
6 に答える
5554 参照

functional-programming - 関数型言語でのfold/reduceの実践的使用

Fold(別名reduce) は、非常に重要な高次関数と見なされます。Mapで表すことができますfold(ここを参照)。しかし、私には実用的というよりもアカデミックに聞こえます。典型的な用途は、数値の合計、積、または最大値を取得することですが、これらの関数は通常、任意の数の引数を受け入れます。(fold + 0 '(2 3 5))では、なぜ(+ 2 3 5)うまくいくのかを書くのです。私の質問は、どのような状況で使用するのが最も簡単または最も自然foldですか?

0 投票する
1 に答える
418 参照

f# - F#->2つのパラメーターで折りたたむ

私は自分のシーケンスを通過するカスタムフォールドを作成しようとしています。これには2Teams回かかり、それらをaに割り当てて、最後Matchにaを返しMatch listます。

私の現在のコードは次のとおりです。

それは私に(int -> int) list

しかし、明らかにそれはうまくいきません...私は何が間違っているのですか?->このシナリオ用に特別に作成されたリクルート関数を作成できることはわかっていますが、再利用できるようにできるだけ抽象化したいと思います。