問題タブ [predicate]

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 投票する
1 に答える
929 参照

c# - 述語を使用してマッチングアルゴリズムを実装するにはどうすればよいですか?

デリゲートの使用方法を理解しており、ラムダ式を使用して述語を使用しても問題ありません。述語を引数として使用するメソッドを実装したいのですが、コレクション内で一致するものを見つけるために述語を参照する方法がわかりません。

次に、次のようなものを使用してこれを参照します。

述語の実装に関する説明や参考資料を教えていただければ幸いです。そこにあるドキュメントはすべて、述語を渡すことに関連しているようです(これは私がうまく行うことができます)、実際にはそれらを使用する機能を実装していません...

ありがとう

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

c++ - テンプレート化された型の適切な述語を決定する方法

次のような関数があるとします。

この関数で、述語を受け入れる別の関数を呼び出したいと思います。私の最初の本能は、次のようなことをすることでした:

Inしかし、In2イテレータが異なる型の場合はどうなるでしょうか? たとえば、char*int*Inどちらが述語でどちらが述語であるかに応じてIn2、比較中に値が切り捨てられる場合があります。たとえば、 if Inis char*thenは、 is でstd::less<char>あっても呼び出されます。In2int*

::operator<2 つのパラメーターを指定すると、コンパイラは正しい型を推測でき、標準の型昇格規則が適用されます。ただし、関数に渡す述語を選択する場合、これが発生する機会はありません。とに基づいて、どのバージョンを渡したいかを判断する賢い方法はありますか?std::less<>InIn2

編集:

次の例は、この問題を示しています。

出力します:

編集

それについて考えた後、私が本当に欲しいのは、次のようなことができるようになることです:

gcc の__typeof__拡張機能を使用できると思いますが、そのアイデアも好きではありません。標準に準拠した方法でその正味の効果を得る方法はありますか?

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

artificial-intelligence - Java や C# などの言語で統合アルゴリズムを実装するにはどうすればよいですか?

入手した AI の教科書に取り組んでいると、セクションの最後の宿題の問題にたどり着きました。

「69 ページで概説されている統合アルゴリズムを任意の言語で実装します。」

69 ページには、統一アルゴリズムの次の擬似コードがあります。

これで、統合の一般的な概念は理解できましたが、Java や C# などの言語でこれをどのように実装し始めるかはまったくわかりません。

メソッドの署名がどのように見えるかさえわかりません。どのタイプの変数が必要ですか? 述語計算構造を表すためにリストを返す必要があることは確かですが、それは推測です。

たとえば、「E1 は変数です」と書かれている場合、それを Unify メソッドに渡すとしたら、それ以外の何かである可能性はありません。null をチェックすることはできますが、それは「空のリスト」とは異なりますか?

Unificaiton アルゴリズムを C# または Java で実装するために、誰かが私を助けたり、正しい方向に向けたりすることはできますか?

0 投票する
9 に答える
2395 参照

c++ - STL/Boost を使用して、ベクトル内の一致する要素を見つけて変更する

次のように宣言されたベクトルがあるとしましょう。

ここで、同じ a を共有する v のすべての要素を見つけて、それらの b を平均したいと考えています。

v に次の 5 つの要素 {a, b} が含まれているとします: {1, 1}、{1, 2}、{2, 1}、{1, 3}、{2, 2}

v[0]、v[1]、v[3] (a は 1) と平均 b: (1 + 2 + 3)/3 = 2、および v[2] と v[4] を取得したい(a は 2) と平均 b: (1+2)/2 = 1.5

その後、v は次のようになります: {1, 2}, {1, 2}, {2, 1.5}, {1, 2}, {2, 1.5}

私は STL や Boost にあまり詳しくないので、C++ でこれを「ブルートフォース」の方法で行う方法しか理解できませんが、STL (for_each?) および Boost (lambda?) ライブラリがこれを解決できると推測しています。よりエレガントに。

編集参考までに、これが私の(作業中の)ブルートフォース方法です。

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

cocoa - NSPredicateEditorと関係

リレーションシップを持つクエリで機能するすべての述語には、最初にANYまたはALLという単語が含まれていることを確認しました(つまり、ANY tags.name LIKE [c] "car")。 :tags.name LIKE [c] "car")、結果が間違っているか、次のようなメッセージが表示されます:オブジェクトの正規表現マッチングを実行できません。

NSPredicateEditorを使用しているので、クエリを開始するANYまたはALLはないため、常に失敗します。返される述語は常に2番目の例のようです(ANYまたはALLはありません)。

述語にANYまたはALLを追加するために、NSPredicateRowTemplateEditorをサブクラス化する必要がありますか、それとも別の方法ですか?

日付についても同じです...私の日付は次の形式で保存されます:YYYY-MM-DD HH:mm:ssですが、NSPredicateEditorはDD / MM / YYYYを使用するため、日付の比較を試みるたびに機能しません。日付形式を変更するために、RowEditorもサブクラス化する必要がありますか?

ありがとうございました。

0 投票する
5 に答える
476 参照

.net - 述語です.NET 3.0 以降では使用できません

Predicate は .NET のどこでも使用できますか? MSDN http://msdn.microsoft.com/en-us/library/bfcke1bz.aspxから、述語がどこにも表示されません。ブール値を返しますが、ジェネリックまたは「述語」キーワードを返さない匿名が表示されます。

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

objective-c - NSMetadataQuery を使用して NSPredicate を構築し、スポットライトを使用して非表示のフォルダーを検索する

非表示のフォルダー (「.myInvisibleFolder」など) を見つけるために NSmetaDataQuery を作成しています。

残念ながら、述語に明確に含まれている場合でも、スポットライトは「.」で始まるフォルダーを見つけていないようです。

機能するものと機能しないもの

見えないファイル名の検索は機能します。

コンテンツの検索が機能します (kMDItemTextContent)。

「.」で始まるファイルはありません が見つかったことがあります。常に 0 の結果を返します。

テストとして、Finder 内の非表示コンテンツの検索は機能します。

私は何を間違っていますか?非表示のフォルダを見つける別の方法はありますか?

コード:

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

c# - 関数でC#Count()を使用する

述語を内部に持つLinqを使用して、配列の最大値が配列内で何回発生するかを把握しようとしています。.Count()しかし、私はそれを行う方法を完全には理解していません。MSDNのわずかな例を読んだことから、私は理解したと思いましたが、明らかにそうではありませんでした。

これは私が考えたものです:

しかし、それはうまくいきませんでした。そこで、 maxを整数に変更して、それが機能するかどうかを確認しようとしましたが、それも機能しませんでした。

0 投票する
2 に答える
598 参照

c++ - 名前と数字を正しく並べ替える

項目名の並び替えは、数字を正しく対応させたい。すなわちこれ:

それ以外の

すでにそれをサポートしている比較ファンクターを知っている人はいますか?
(つまり、 に渡すことができる述語std::sort)

私は基本的にサポートする 2 つのパターンを持っています: 先頭の数字 (上記のように) と、エクスプローラーに似た末尾の数字:

(私はそれを解決できると思います:文字で比較し、数値を異なる方法で扱います。しかし、それはおそらくユニコード照合などを壊します)

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

iphone - NSArray iphone をフィルタリングする

coredata を使用して、テーブルビューに表示されるデータを配列に入力します。テーブルビューには、2 つのセクションがあります。セルがセクション 1 にプッシュされると、そのセルをセクション 2 に移動したり、その逆にしたりします。

これを達成する方法がよくわかりません。私はそれを理解しようとして約8時間座っていました.

これは私がこれまでに得たものです:

このコードを使用してデータを取得します。

didSelectRowForIndexPath で、セルを削除する方法を見つけます。

このセルをtableViewのセクション2に挿入するにはどうすればよいですか? 2 つのアレイを作成する必要がありますか? 次のように、NSDictionary を使用するコードをいくつか試しました。

しかし、私はそれを機能させることができません。

どんな助けでも大歓迎です!前もって感謝します