program tip

술어는 무엇입니까?

radiobox 2020. 11. 24. 07:51
반응형

술어는 무엇입니까?


취미 코더이기 때문에 기본적인 지식이 부족합니다. 지난 며칠 동안 나는 몇 가지 내용을 읽고 있었고 "술어"라는 단어가 계속 다시 나타납니다. 주제에 대한 설명을 대단히 감사하겠습니다.


여기 와 같은 다양한 소스에서 온라인으로 찾을 수있는 술어의 정의 는 다음과 같습니다.

일반적으로 코드에서 실행 경로를 지시하기 위해 TRUE 또는 FALSE로 평가되는 논리 표현식입니다.

참조 : 소프트웨어 테스트. 매튜 헤이든


참 또는 거짓 인 진술. 프로그래밍에서 일반적으로 일부 입력에 대해 부울을 반환하는 함수입니다.

고차 함수의 맥락에서 가장 일반적으로 사용됩니다. 예를 들어 술어목록 을 인수로 filter취하고 술어가 참인 목록의 항목을 리턴하는 여러 언어의 함수입니다 .

자바 스크립트의 예 :

lessThanTen = function(x) { return x < 10; }
[1,7,15,22].filter(lessThanTen) --> [1,7]

여기서 함수 lessThanTen는 목록의 각 항목에 적용되는 술어입니다. 물론 부울 표현식은 함수 대신 술어로 사용될 수 있습니다. 예를 들어 filter(true)전체 목록, filter(false)빈 목록을 반환 합니다.


술어는 단순히 참 또는 거짓으로 평가되는 표현식이 아니라 더 많은 것이 있습니다. "술어"라는 용어는 어떤 것이 참인지 거짓인지 결정 하는 표현식을 가리키는 데 사용됩니다 . 즉, 주장을하고 그에 따라 참 또는 거짓을 반환합니다.

예 (C #에서) :

/*this is a predicate, as it's sole purpose is to make some 
 assertion about something.*/
bool IsNameBob(string name)
{
   return name == "Bob";
}

/*Whereas this is not a predicate, as it's performing an action
 then evaluating to true if it succeeds. */
bool DoSomethingCool() {
   try 
   {
       ImDoingSomethingCool();
   }
   catch
   {
      return false;
   }
   return true;
}

나는 내가 여기에 넣은 것이 순전히 의미론의 차이라는 것을 이해하지만 이것이이 질문에 관한 것이 옳은 것입니까? 의미론?


비 프로그래밍 용어로; 질문 . 일반적으로 여러 가지 질문을 할 수있는 자리 표시자가있는 일반적인 질문입니다 (예 : itthem ).

  • 인가 빨간색?
  • 인가 개?
  • 인가 소유 그들 ?

부울 1을 생성하는 기본 평가입니다 . 종종이 유형의 평가를 나타내는 함수 또는 객체를 나타냅니다.

1 : 부울은 느슨하게 사용되며 반드시 선언 된 bool또는 boolean.


먼저 일반 사전을 살펴보고 술어가 무엇인지 살펴 보겠습니다.

옥스포드 미국 사전 (1980) :

엔. "life is short"의 "is short"와 같이 문법적 주제에 대해 말하는 문장의 일부

여기 또 다른 문장이 있습니다. "John은 키가 큽니다." 술어는 "키가 크다"입니다. 보시다시피 주제를 수정하거나 설명하는 것과 유사한 또 다른 용어 predicateadjective입니다. 본질적으로 그것은 수정 자입니다.

IBM의 기술 용어집 은 몇 가지 정의를 제공하지만 가장 적합한 것은 다음과 같습니다.

데이터 항목, 연산자 및 값으로 구성된 필터의 일부로 사용되는 표현식

다음은 SQL을 사용한 예입니다.

SELECT name
FROM tableA
WHERE name = "john";

이 코드의 술어는입니다 name = "john". IBM 정의의 모든 구성 요소가 있으며 술어의 일반 정의에도 적합합니다. 주체 name와 술어는 name = "john"입니다.


부울을 반환하는 함수입니다. 술어는 기능 및 OO 프로그래밍에서 많이 사용 되어 데이터 구조 , 특히 목록 및 기타 컬렉션 에서 값의 하위 집합선택 합니다. Haskell 및 Smalltalk의 표준 라이브러리에서 많은 예제를 찾을 수 있습니다.


It is probably useful to consider the grammatical meaning of the concept to extrapolate the programming concept.

From wikipedia:

In traditional grammar, a predicate is one of the two main parts of a sentence (the other being the subject, which the predicate modifies). For the simple sentence "John [is yellow]," John acts as the subject, and is yellow acts as the predicate, a subsequent description of the subject headed with a verb.

In current linguistic semantics, a predicate is an expression that can be true of something. Thus, the expressions "is yellow" or "is like broccoli" are true of those things that are yellow or like broccoli, respectively. This notion is closely related to the notion of a predicate in formal logic, which includes more expressions than the former one, like, for example, nouns and some kinds of adjectives.

In logic terms:

An operator in logic which returns either true or false.

from MathWorld


I don't know if I'm speaking in the correct context, but there is a Predicate class in C# which is essentially a delegate which, given an item, determines whether or not the object meets a set of criteria.

For example, the following method, which is of type Predicate<int>, could be used to select all integers greater than 5:

public bool MyPredicate(int x)
{
   return x > 5;
}

I'm not sure how this translates into the more general case, but it's a start. For more info, click here.


From C++ Primer 5th (§10.3.1):

A predicate is an expression that can be called and that returns a value that can be used as a condition.

Also from chapter Defined Terms section:

predicate : Function that returns a type that can be converted to bool.


Also somewhat related, there are database-related predicates:

http://www.tizag.com/sqlTutorial/sqlpredicates.php


The best S.O. answer around predicates, that I have found, is on a duplicate question.

To summarize, in natural languages a predicate is the part of the sentence that describes a subject.

Jane is tall

Jane is the subject and is tall is the predicate.

In computer science we are not interested in asserting a fact about a subject but rather testing if something is true or false.

jane.isTall();

Here jane is some object with a predicate method that will return either true or false.

참고URL : https://stackoverflow.com/questions/1344015/what-is-a-predicate

반응형