問題タブ [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.
haskell - BST が有効かどうかを確認するにはどうすればよいですか?
BST の定義が与えられ、BST のフォールドの一般化されたバージョンを使用している場合、BST が有効なものであるかどうかを確認するにはどうすればよいですか?
ノード値が左サブツリーのすべての値よりも大きく、右サブツリーのすべての値よりも小さいことを確認するという考え方です。True
これは、ツリー内のすべてのノードに対して行う必要があります。関数bstList
は、BST の (順序付けられた) 値のリストを単純に出力します。
もちろん、次のようなものは機能しません。
たとえば、fold 関数をノードに適用すると19
、all (<19) (bstList True) && all (>19) (bstList True)
.
haskell - ツリーの一般化されたfoldr関数?
一般的な Haskell ツリー用の一般化された folderr 関数を作成するにはどうすればよいですか?
私は最初の引数の定義で立ち往生しています...
編集:リストの使用を避けて、より一般化されたバージョンはどうですか? 詳細はこちら
haskell - 一般的なHaskellツリーで使用するための一般化されたfoldrとfoldl?
この定義が与えられた場合、一般化された Haskell ツリーの一般化されたfoldrおよびfoldl関数をどのように記述できますか?
Haskellでfoldr関数とfoldl関数がどのように機能するかを理解できたとしても、ツリー用のこの一般化された関数をどのように記述するかはよくわかりません。
編集:私はこのようなことを試しました(コンパイルさえしません):
EDIT 2:もう一度試してみてください...
treefoldr
動作していますが、動作していtreefoldl
ません:
scala - 2 番目の要素から始まる foldLeft の代替
私は次のようにList
定義しています:
文字列に変換したい
1 つの方法は次のとおりです。
もっとエレガントな方法はありますか?
[編集: 詳細説明]
Easy Angel の答えは、要素にl
「意味のある」toString
方法がある場合に機能します。
私はl
asList[String]
を持っていますが、次のように、メソッドをl
オーバーライドしないカスタムタイプのリストにすることができます:toString
方法もあります
したがって、デフォルトメソッドgetMy
の出力の代わりに の出力を使用したいと思います。toString
list - Erlang:最小関数をリストフォールドとして書くことは可能ですか?
与えられた関数:
これを関数foldl
でこれと同じように使用できますか?
リストの残りの部分と比較される初期値を設定する必要があるため、それは不可能だと思います。たとえば、私が考えることができる恒等関数はありません。私は正しいですか?
構文はErlangで書かれていますが、Erlang以外のプログラマーも読めるようにする必要があります。
function - F# の + は何ですか?
なぜ私は次のようなことができないのですか
scala - Option に fold メソッドがないのはなぜですか?
なぜこのようなscala.Option
メソッドfold
が定義されていないのだろうか:
に相当
map
+を使用するよりも良いことはありませんgetOrElse
か?
list - Haskellのリストの再帰
たとえば、['a'、'b'、'c'、'd'、'e']のようなリストがあります。
次のようなことをしたい:
最初に最初の2つの要素f'a''b'で何かをし、
次にfの戻り値とリスト内の次の要素で同じことをするresult = f'a''b '、f結果'c'のようにしましょう。次に、f resultof(result'c')'d'など。
どうすればこのようなことができますか?
functional-programming - 関数型言語でのfold/reduceの実践的使用
Fold
(別名reduce
) は、非常に重要な高次関数と見なされます。Map
で表すことができますfold
(ここを参照)。しかし、私には実用的というよりもアカデミックに聞こえます。典型的な用途は、数値の合計、積、または最大値を取得することですが、これらの関数は通常、任意の数の引数を受け入れます。(fold + 0 '(2 3 5))
では、なぜ(+ 2 3 5)
うまくいくのかを書くのです。私の質問は、どのような状況で使用するのが最も簡単または最も自然fold
ですか?
f# - F#->2つのパラメーターで折りたたむ
私は自分のシーケンスを通過するカスタムフォールドを作成しようとしています。これには2Teams
回かかり、それらをaに割り当てて、最後Match
にaを返しMatch list
ます。
私の現在のコードは次のとおりです。
それは私に(int -> int) list
しかし、明らかにそれはうまくいきません...私は何が間違っているのですか?->このシナリオ用に特別に作成されたリクルート関数を作成できることはわかっていますが、再利用できるようにできるだけ抽象化したいと思います。