Guard (computer science) (original) (raw)
In computer programming, a guard is a boolean expression that must evaluate to true if the program execution is to continue in the branch in question. Regardless of which programming language is used, a guard clause, guard code, or guard statement, is a check of integrity preconditions used to avoid errors during execution.
Property | Value | |||||
---|---|---|---|---|---|---|
dbo:abstract | In computer programming, a guard is a boolean expression that must evaluate to true if the program execution is to continue in the branch in question. Regardless of which programming language is used, a guard clause, guard code, or guard statement, is a check of integrity preconditions used to avoid errors during execution. (en) En informatique, une garde est une expression de type booléen qui a pour valeur vrai si l'exécution du programme doit continuer dans la brancheen question.Le terme est utilisé notamment dans les langages informatiques Haskell et .Dans Mathematica, les gardes sont appelés contraintes.Les gardes sont un concept fondamental des , un langage de méthode formelles.Les gardes peuvent être utilisées pour augmenter le filtrage par motif avec la possibilité de sauter un motif même si la structure passe le filtre.Les expressions booléennes dans une répondent aussi à la définition de garde mais elles sont appelées conditions. Dans l'exemple suivant en langage Haskell, les gardes apparaissent entre chaque paire de "|" et "=" : f x | x > 0 = 1 | otherwise = 0 C'est similaire à la notation mathématique suivante : Dans la notation Haskell les gardes sont dans les clauses « si » et « sinon ». S'il y a des gardes parallèles, comme dans l'exemple ci-dessous, elles sont tentées dans l'ordre de la première à la dernière. La premièrebranche qui passe la garde est choisie. Les gardes d'une liste de cas sont typiquement parallèles.Mais, dans une compréhension de liste en Haskell, les gardes sont en série. Si l'une d'elles échoue, la liste d'éléments n'est pas produite.Cela équivaut à combiner les différentes gardes avec un et logique, sauf qu'il peut y avoir d'autres clausesde compréhension de liste parmi les gardes. (fr) ガード (Guard) とは、コンピュータ・プログラミング言語において、条件式ないし条件分岐のような意味を持つもので、ある分岐で処理を続けるために真 (true) と評価されなければならない式である。偽の場合は残りの処理のほうに進む。パターンマッチングのある言語の、パターンマッチングの能力をより強化したものと見ることもできる。すなわち、パターンマッチングとして構造がマッチしていても、その構造の中身の値を評価した結果によってはスキップさせることが可能なパターンのようなもの、である。 (ja) Охра́на (охраня́ющее выраже́ние, охранное выражение) — логическое выражение, которое предназначено для ограничения вычислительных процессов и выбора варианта вычислений. Обычно, используется в функциональных языках программирования (например, Haskell, Erlang). (ru) Варта — логічний вираз, який призначений для обмеження обчислювальних процесів і спрямування їх за певним напрямком в залежності від умови варти. Зазвичай, використовується в функційних мовах програмування (наприклад, Haskell). В наступному прикладі на Haskell, варта знаходиться між кожною парою " | " і "=": f x | x > 0 = 1 | otherwise = 0 Відповідний математичний запис: У цьому випадку варти знаходяться в пунктах if і otherwise. Функція divisors повертає список дільників заданого числа n. У другому рядку визначення показана варта, яка обмежує вибір елемента списку дільників x тільки такими значеннями, які ділять вихідний параметр n без залишку. divisors n = [x |
dbo:wikiPageExternalLink | http://c2.com/cgi/wiki%3FGuardClause http://foldoc.org/guard https://web.archive.org/web/20050408114902/http:/documents.wolfram.com/mathematica/book/section-2.3.5 https://web.archive.org/web/20051129140339/http:/www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html%23pattern-guards https://web.archive.org/web/20160203203811/http:/research.microsoft.com/en-us/um/people/simonpj/Haskell/guards.html http://haskell.org/onlinereport/exps.html | |||||
dbo:wikiPageID | 1186249 (xsd:integer) | |||||
dbo:wikiPageLength | 8317 (xsd:nonNegativeInteger) | |||||
dbo:wikiPageRevisionID | 1120914500 (xsd:integer) | |||||
dbo:wikiPageWikiLink | dbr:Python_(programming_language) dbr:Scala_(programming_language) dbc:Articles_with_example_Haskell_code dbr:Iverson_bracket dbr:Promela dbr:Mathematica dbc:Formal_methods_terminology dbr:Precondition dbr:Refactoring dbc:Conditional_constructs dbr:Logical_conjunction dbr:Simon_Peyton_Jones dbr:Smalltalk dbr:Structured_programming dbr:Subroutine dbr:Clean_programming_language dbr:CPL_programming_language dbr:WikiWikiWeb dbr:Dispose_pattern dbr:Early_exit dbr:Erlang_programming_language dbr:List_comprehension dbr:APL_(programming_language) dbr:Formal_methods dbr:Kent_Recursive_Calculator dbr:Conditional_(programming) dbr:Haskell_(programming_language) dbr:Kent_Beck dbr:Swift_(programming_language) dbr:Guarded_Command_Language dbr:Guarded_suspension dbr:ISWIM dbr:Idempotence dbr:OCaml dbr:Occam_(programming_language) dbr:Pattern_matching dbr:Switch_statement dbr:SASL_programming_language dbr:Boolean_datatype dbr:Assertion_(computing) dbr:Expression_(programming) dbr:Logical_conditional | |||||
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:More_footnotes dbt:Reflist | |||||
dct:subject | dbc:Articles_with_example_Haskell_code dbc:Formal_methods_terminology dbc:Conditional_constructs | |||||
rdf:type | yago:WikicatConditionalConstructs yago:Abstraction100002137 yago:Cognition100023271 yago:Concept105835747 yago:Content105809192 yago:Idea105833840 yago:PsychologicalFeature100023100 | |||||
rdfs:comment | In computer programming, a guard is a boolean expression that must evaluate to true if the program execution is to continue in the branch in question. Regardless of which programming language is used, a guard clause, guard code, or guard statement, is a check of integrity preconditions used to avoid errors during execution. (en) ガード (Guard) とは、コンピュータ・プログラミング言語において、条件式ないし条件分岐のような意味を持つもので、ある分岐で処理を続けるために真 (true) と評価されなければならない式である。偽の場合は残りの処理のほうに進む。パターンマッチングのある言語の、パターンマッチングの能力をより強化したものと見ることもできる。すなわち、パターンマッチングとして構造がマッチしていても、その構造の中身の値を評価した結果によってはスキップさせることが可能なパターンのようなもの、である。 (ja) Охра́на (охраня́ющее выраже́ние, охранное выражение) — логическое выражение, которое предназначено для ограничения вычислительных процессов и выбора варианта вычислений. Обычно, используется в функциональных языках программирования (например, Haskell, Erlang). (ru) 在计算机程序设计中,卫(guard)是布尔表达式,其结果必须为真,程序才能执行下去。卫语句(guard code或guard clause)用于检查先决条件。卫语句的用途,例如: * 引用(reference)使用前检查是否为空引用; * 使用一个布尔域,使得释放资源操作成为幂等运算,即多次释放资源等效于只释放一次。 (zh) En informatique, une garde est une expression de type booléen qui a pour valeur vrai si l'exécution du programme doit continuer dans la brancheen question.Le terme est utilisé notamment dans les langages informatiques Haskell et .Dans Mathematica, les gardes sont appelés contraintes.Les gardes sont un concept fondamental des , un langage de méthode formelles.Les gardes peuvent être utilisées pour augmenter le filtrage par motif avec la possibilité de sauter un motif même si la structure passe le filtre.Les expressions booléennes dans une répondent aussi à la définition de garde mais elles sont appelées conditions. (fr) Варта — логічний вираз, який призначений для обмеження обчислювальних процесів і спрямування їх за певним напрямком в залежності від умови варти. Зазвичай, використовується в функційних мовах програмування (наприклад, Haskell). В наступному прикладі на Haskell, варта знаходиться між кожною парою "|" і "=": f x | x > 0 = 1 | otherwise = 0 Відповідний математичний запис: У цьому випадку варти знаходяться в пунктах if і otherwise. divisors n = [x | x <- [1..(n - 1)], n `mod` x == 0] (uk) | ||
rdfs:label | Guard (computer science) (en) Garde (informatique) (fr) ガード (プログラミング) (ja) Охрана (программирование) (ru) Варта (програмування) (uk) 卫语句 (zh) | |||||
owl:sameAs | freebase:Guard (computer science) yago-res:Guard (computer science) wikidata:Guard (computer science) dbpedia-fr:Guard (computer science) dbpedia-ja:Guard (computer science) dbpedia-ru:Guard (computer science) dbpedia-uk:Guard (computer science) dbpedia-zh:Guard (computer science) https://global.dbpedia.org/id/2FAZM | |||||
prov:wasDerivedFrom | wikipedia-en:Guard_(computer_science)?oldid=1120914500&ns=0 | |||||
foaf:isPrimaryTopicOf | wikipedia-en:Guard_(computer_science) | |||||
is dbo:wikiPageDisambiguates of | dbr:Guard | |||||
is dbo:wikiPageRedirects of | dbr:Pattern_guard dbr:Guard_clause dbr:Guard_(computing) dbr:Guard_pattern dbr:Guard_statement dbr:Guard_statements | |||||
is dbo:wikiPageWikiLink of | dbr:Umple dbr:Constraint_Handling_Rules dbr:Precondition dbr:Haskell_features dbr:Guard dbr:Return_statement dbr:Pattern_guard dbr:Swift_(programming_language) dbr:Direct_function dbr:Guard_clause dbr:Occam_(programming_language) dbr:Π-calculus dbr:Tracing_just-in-time_compilation dbr:Guard_(computing) dbr:Guard_pattern dbr:Guard_statement dbr:Guard_statements | |||||
is foaf:primaryTopic of | wikipedia-en:Guard_(computer_science) |