web-dev-qa-db-ja.com

コンピューターサイエンスの文脈では、「述語」とはどういう意味ですか?

具体的には、テキストフィルタリングのコンテキストで使用されるのを見てきました。 「述語」==「フィルター基準」のように。

これは正確ですか?

113
ack

これは、数学論理の分野で最も一般的に使用される用語です。

wikipedia から

数学では、述語は関係またはブール値関数であり、これはそのような関係の特性関数またはインジケーター関数になります。

関数P:X→{true、false}はXの述語と呼ばれます。PがXの述語である場合、PはXのプロパティであると言うことがあります。

「述語」==「フィルター基準」

91
Prasoon Saurav

述語( 'PRED-i-cat')は、動詞を含む文の一部であり、主題について何かを伝えます。

たとえば、文で

「マイクは食べています」という主題があり、「マイク」という主題と、「食べている」という述語があります。

コンピューターサイエンスの文脈では、事実を述べることには興味がありませんが、何かを行うかどうかを決定する目的で真/偽の条件をテストすることに興味があります。

_Person mike;

if (!mike.isEating())
    feedPerson(mike);
_

mikeisEating()メンバー(Personのインスタンス)は述語です。 true(この場合はfalse)が食べているというアサーションに対して、personまたはmikeを返します。述語は、人を養うかどうかを決定するために使用されています。

述語は多くの場合コールバックの形で見つかりますが、一般に、アサーションの真偽の評価に基づいてブールを返す任意の関数の用語を使用できます。

並べ替えには、メンバー関数が必要な場合があります

_bool Fruit::ComesAfter(Fruit x) ...
_

述語として。 xが後に続く場合、ソートアルゴリズムは2つの果物を入れ替えます。

述語(predi-KATE)という用語もあります。英語では次のように使用します。

「卒業は合格点に達することを前提としています。」

それは、あるものが別のものに依存することを意味します。

コンピューターサイエンスでは、この形式のWordを使用して条件付き実行を記述します。

たとえば、CUDAプログラミングには、実行結果が前の結果に基づいて予測(KATE)できるアセンブリ命令があります。つまり、trueの場合は命令が実行され、falseの場合は命令がNOPとして扱われるようにする述語(CAT)フラグを設定します。したがって、命令の実行は、示された述語フラグに基づいて予測されます。

用途は非常に似ています。

お役に立てば幸いです。

120
cwm9

言葉は論理から来ています。

述語は、入力に関する「is」ブール型の質問です。

「IsNull」は述語の質問です。

また、ウィキペディアの 数学の述語 に関するリンク。

39
Paul Nathan

述語は、真または偽のいずれかに関する文です。

16
Bradley

命題:

  • 間違いなくtrueまたはfalseに設定されている
  • パラメータの値に依存しない
  • 例えば。
    • "x + 2 = 2x、x = -2の場合" => true
    • "2 * 2 = 5" => false

述語:

  • 真理値はパラメータの値に依存します
  • 例えば。
    • "x + 2 = 2x" =>真理値は不明で、xの値に依存します

量指定子を使用して、述語を命題に変換します。

  • ∃x∈Z(x + 2 = 2x) "x + 2 = 2xであるような整数の集合にxが存在する"
5
JeanieJ

物事を単純化するだけです。 predicateは、trueまたはfalseの値を返す関数です。

「フィルター基準」の意味として使用されます。数値の配列と、数値が0より大きい場合はtrueを返し、そうでない場合はfalseを返す述語を考えてみましょう。

function predicate(number){
  return number > 0 
}
// array of numbers 
var numbers = [-2 , -1 , 0 , 1 , 2];

var newNumbers = numbers.filter(predicate);

// newNumbers => [1 , 2] ;

filterは、述語(または「フィルター基準」)に基づいて新しい配列を返す関数です。

述語の値に基づいて配列をフィルタリングしました

  • true:値を含める
  • false:含めないでください
4
aeid

述語は、入力パラメーターとして1つの要素を取り、trueまたはfalseを返す関数です。述語は高次関数で使用され、与えられた関数(トランスフォーマー)に要素ごとに要素のリストに適用され、結果のリストを返します。 Transformerは、各要素に適用される関数であり、1つ以上の新しい要素を生成します。

1
Remario