Logo
Unionpedia
Communication
Get it on Google Play
New! Download Unionpedia on your Android™ device!
Free
Faster access than browser!
 

Pattern matching

Index Pattern matching

In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. [1]

68 relations: Abstract data type, Abstract syntax tree, AIML, Algebraic data type, Alternation (formal language theory), AT&T Corporation, AWK, Backtracking, Backus–Naur form, Bell Labs, Coccinelle (software), Computer science, Concatenation, Conditional (computer programming), Context-free grammar, Curry–Howard correspondence, David J. Farber, Erlang (programming language), Fibonacci number, First-class citizen, Functional programming, Glob (programming), Graph matching, Graph rewriting, Guard (computer science), Haskell (programming language), Hope (programming language), Humanities, Integer, Interface (computing), Ken Thompson, Kent Recursive Calculator, Language construct, Lisp (programming language), List (abstract data type), List comprehension, Matching wildcards, ML (programming language), NPL (programming language), Pattern, Pattern calculus, Pattern language, Pattern recognition, Perl, Perl Compatible Regular Expressions, Programming language, Prolog, Proof by exhaustion, Pure (programming language), QED (text editor), ..., Ralph Griswold, Recursion, Refal, Regular expression, Rewriting, SASL (programming language), Scala (programming language), SNOBOL, Soviet Union, SPITBOL, String (computer science), Subroutine, Symbolic integration, Tom (pattern matching language), Tree (data structure), Tree structure, Unification (computer science), Wolfram Mathematica. Expand index (18 more) »

Abstract data type

In computer science, an abstract data type (ADT) is a mathematical model for data types, where a data type is defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.

New!!: Pattern matching and Abstract data type · See more »

Abstract syntax tree

In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract syntactic structure of source code written in a programming language.

New!!: Pattern matching and Abstract syntax tree · See more »

AIML

AIML, or Artificial Intelligence Markup Language, is an XML dialect for creating natural language software agents.

New!!: Pattern matching and AIML · See more »

Algebraic data type

In computer programming, especially functional programming and type theory, an algebraic data type is a kind of composite type, i.e., a type formed by combining other types.

New!!: Pattern matching and Algebraic data type · See more »

Alternation (formal language theory)

In formal language theory and pattern matching, alternation is the union of two sets of strings or patterns.

New!!: Pattern matching and Alternation (formal language theory) · See more »

AT&T Corporation

AT&T Corp., originally the American Telephone and Telegraph Company, is the subsidiary of AT&T that provides voice, video, data, and Internet telecommunications and professional services to businesses, consumers, and government agencies.

New!!: Pattern matching and AT&T Corporation · See more »

AWK

AWK is a programming language designed for text processing and typically used as a data extraction and reporting tool.

New!!: Pattern matching and AWK · See more »

Backtracking

Backtracking is a general algorithm for finding all (or some) solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it determines that the candidate cannot possibly be completed to a valid solution.

New!!: Pattern matching and Backtracking · See more »

Backus–Naur form

In computer science, Backus–Naur form or Backus normal form (BNF) is a notation technique for context-free grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocols.

New!!: Pattern matching and Backus–Naur form · See more »

Bell Labs

Nokia Bell Labs (formerly named AT&T Bell Laboratories, Bell Telephone Laboratories and Bell Labs) is an American research and scientific development company, owned by Finnish company Nokia.

New!!: Pattern matching and Bell Labs · See more »

Coccinelle (software)

Coccinelle (French for ladybug) is an open-source utility for matching and transforming the source code of programs written in the C programming language.

New!!: Pattern matching and Coccinelle (software) · See more »

Computer science

Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.

New!!: Pattern matching and Computer science · See more »

Concatenation

In formal language theory and computer programming, string concatenation is the operation of joining character strings end-to-end.

New!!: Pattern matching and Concatenation · See more »

Conditional (computer programming)

In computer science, conditional statements, conditional expressions and conditional constructs are features of a programming language, which perform different computations or actions depending on whether a programmer-specified boolean condition evaluates to true or false.

New!!: Pattern matching and Conditional (computer programming) · See more »

Context-free grammar

In formal language theory, a context-free grammar (CFG) is a certain type of formal grammar: a set of production rules that describe all possible strings in a given formal language.

New!!: Pattern matching and Context-free grammar · See more »

Curry–Howard correspondence

In programming language theory and proof theory, the Curry–Howard correspondence (also known as the Curry–Howard isomorphism or equivalence, or the proofs-as-programs and propositions- or formulae-as-types interpretation) is the direct relationship between computer programs and mathematical proofs.

New!!: Pattern matching and Curry–Howard correspondence · See more »

David J. Farber

David J. "Dave" Farber (born April 17, 1934) is a professor of computer science, noted for his major contributions to programming languages and computer networking.

New!!: Pattern matching and David J. Farber · See more »

Erlang (programming language)

Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system.

New!!: Pattern matching and Erlang (programming language) · See more »

Fibonacci number

In mathematics, the Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and characterized by the fact that every number after the first two is the sum of the two preceding ones: Often, especially in modern usage, the sequence is extended by one more initial term: By definition, the first two numbers in the Fibonacci sequence are either 1 and 1, or 0 and 1, depending on the chosen starting point of the sequence, and each subsequent number is the sum of the previous two.

New!!: Pattern matching and Fibonacci number · See more »

First-class citizen

In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language is an entity which supports all the operations generally available to other entities.

New!!: Pattern matching and First-class citizen · See more »

Functional programming

In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.

New!!: Pattern matching and Functional programming · See more »

Glob (programming)

In computer programming, glob patterns specify sets of filenames with wildcard characters.

New!!: Pattern matching and Glob (programming) · See more »

Graph matching

Graph matching is the problem of finding a similarity between graphs.

New!!: Pattern matching and Graph matching · See more »

Graph rewriting

In computer science, graph transformation, or graph rewriting, concerns the technique of creating a new graph out of an original graph algorithmically.

New!!: Pattern matching and Graph rewriting · See more »

Guard (computer science)

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.

New!!: Pattern matching and Guard (computer science) · See more »

Haskell (programming language)

Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.

New!!: Pattern matching and Haskell (programming language) · See more »

Hope (programming language)

Hope is a small functional programming language developed in the 1970s at the University of Edinburgh.

New!!: Pattern matching and Hope (programming language) · See more »

Humanities

Humanities are academic disciplines that study aspects of human society and culture.

New!!: Pattern matching and Humanities · See more »

Integer

An integer (from the Latin ''integer'' meaning "whole")Integer 's first literal meaning in Latin is "untouched", from in ("not") plus tangere ("to touch").

New!!: Pattern matching and Integer · See more »

Interface (computing)

In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information.

New!!: Pattern matching and Interface (computing) · See more »

Ken Thompson

Kenneth Lane "Ken" Thompson (born February 4, 1943), commonly referred to as ken in hacker circles, is an American pioneer of computer science.

New!!: Pattern matching and Ken Thompson · See more »

Kent Recursive Calculator

KRC (Kent Recursive Calculator) is a lazy functional language developed by David Turner from November 1979 to October 1981 based on SASL, with pattern matching, guards and ZF expressions (now more usually called list comprehensions).

New!!: Pattern matching and Kent Recursive Calculator · See more »

Language construct

A language construct is a syntactically allowable part of a program that may be formed from one or more lexical tokens in accordance with the rules of a programming language.

New!!: Pattern matching and Language construct · See more »

Lisp (programming language)

Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation.

New!!: Pattern matching and Lisp (programming language) · See more »

List (abstract data type)

In computer science, a list or sequence is an abstract data type that represents a countable number of ordered values, where the same value may occur more than once.

New!!: Pattern matching and List (abstract data type) · See more »

List comprehension

A list comprehension is a syntactic construct available in some programming languages for creating a list based on existing lists.

New!!: Pattern matching and List comprehension · See more »

Matching wildcards

In computer science, an algorithm for matching wildcards (also known as a globbing) is useful in comparing text strings that may contain wildcard syntax.

New!!: Pattern matching and Matching wildcards · See more »

ML (programming language)

ML (Meta Language) is a general-purpose functional programming language.

New!!: Pattern matching and ML (programming language) · See more »

NPL (programming language)

NPL is a functional programming language with pattern matching designed by Rod Burstall and John Darlington in 1977.

New!!: Pattern matching and NPL (programming language) · See more »

Pattern

A pattern is a discernible regularity in the world or in a manmade design.

New!!: Pattern matching and Pattern · See more »

Pattern calculus

Pattern calculus bases all computation on pattern matching of a very general kind.

New!!: Pattern matching and Pattern calculus · See more »

Pattern language

A pattern language is a method of describing good design practices or patterns of useful organization within a field of expertise.

New!!: Pattern matching and Pattern language · See more »

Pattern recognition

Pattern recognition is a branch of machine learning that focuses on the recognition of patterns and regularities in data, although it is in some cases considered to be nearly synonymous with machine learning.

New!!: Pattern matching and Pattern recognition · See more »

Perl

Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.

New!!: Pattern matching and Perl · See more »

Perl Compatible Regular Expressions

Perl Compatible Regular Expressions (PCRE) is a library written in C, which implements a regular expression engine, inspired by the capabilities of the Perl programming language.

New!!: Pattern matching and Perl Compatible Regular Expressions · See more »

Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.

New!!: Pattern matching and Programming language · See more »

Prolog

Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics.

New!!: Pattern matching and Prolog · See more »

Proof by exhaustion

Proof by exhaustion, also known as proof by cases, proof by case analysis, complete induction, or the brute force method, is a method of mathematical proof in which the statement to be proved is split into a finite number of cases or sets of equivalent cases and each type of case is checked to see if the proposition in question holds.

New!!: Pattern matching and Proof by exhaustion · See more »

Pure (programming language)

Pure, successor to the equational language Q, is a dynamically typed, functional programming language based on term rewriting.

New!!: Pattern matching and Pure (programming language) · See more »

QED (text editor)

QED is a line-oriented computer text editor that was developed by Butler Lampson and L. Peter Deutsch for the Berkeley Timesharing System running on the SDS 940.

New!!: Pattern matching and QED (text editor) · See more »

Ralph Griswold

Ralph E. Griswold (May 19, 1934, Modesto, CA – October 4, 2006, Tucson, AZ) was a computer scientist known for his research into high-level programming languages and symbolic computation.

New!!: Pattern matching and Ralph Griswold · See more »

Recursion

Recursion occurs when a thing is defined in terms of itself or of its type.

New!!: Pattern matching and Recursion · See more »

Refal

Refal (" Recursive functions' algorithmic language") "is functional programming language oriented toward symbolic computations", including "string processing, language translation, artificial intelligence".

New!!: Pattern matching and Refal · See more »

Regular expression

A regular expression, regex or regexp (sometimes called a rational expression) is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern.

New!!: Pattern matching and Regular expression · See more »

Rewriting

In mathematics, computer science, and logic, rewriting covers a wide range of (potentially non-deterministic) methods of replacing subterms of a formula with other terms.

New!!: Pattern matching and Rewriting · See more »

SASL (programming language)

SASL (from St Andrews Static Language, alternatively St Andrews Standard Language) is a purely functional programming language developed by David Turner at the University of St Andrews in 1972, based on the applicative subset of ISWIM.

New!!: Pattern matching and SASL (programming language) · See more »

Scala (programming language)

Scala is a general-purpose programming language providing support for functional programming and a strong static type system.

New!!: Pattern matching and Scala (programming language) · See more »

SNOBOL

SNOBOL (StriNg Oriented and symBOlic Language) is a series of computer programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4.

New!!: Pattern matching and SNOBOL · See more »

Soviet Union

The Soviet Union, officially the Union of Soviet Socialist Republics (USSR) was a socialist state in Eurasia that existed from 1922 to 1991.

New!!: Pattern matching and Soviet Union · See more »

SPITBOL

SPITBOL (Speedy Implementation of SNOBOL) is a compiled implementation of the SNOBOL4 programming language.

New!!: Pattern matching and SPITBOL · See more »

String (computer science)

In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable.

New!!: Pattern matching and String (computer science) · See more »

Subroutine

In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.

New!!: Pattern matching and Subroutine · See more »

Symbolic integration

In calculus, symbolic integration is the problem of finding a formula for the antiderivative, or indefinite integral, of a given function f(x), i.e. to find a differentiable function F(x) such that This is also denoted.

New!!: Pattern matching and Symbolic integration · See more »

Tom (pattern matching language)

Tom is a programming language particularly well-suited for programming various transformations on tree structures and XML based documents.

New!!: Pattern matching and Tom (pattern matching language) · See more »

Tree (data structure)

In computer science, a tree is a widely used abstract data type (ADT)—or data structure implementing this ADT—that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.

New!!: Pattern matching and Tree (data structure) · See more »

Tree structure

A tree structure or tree diagram is a way of representing the hierarchical nature of a structure in a graphical form.

New!!: Pattern matching and Tree structure · See more »

Unification (computer science)

In logic and computer science, unification is an algorithmic process of solving equations between symbolic expressions.

New!!: Pattern matching and Unification (computer science) · See more »

Wolfram Mathematica

Wolfram Mathematica (usually termed Mathematica) is a modern technical computing system spanning most areas of technical computing — including neural networks, machine learning, image processing, geometry, data science, visualizations, and others.

New!!: Pattern matching and Wolfram Mathematica · See more »

Redirects here:

Pattern Matching, Pattern match, Pattern matches, Pattern matching (functional programming), Pattern-matching.

References

[1] https://en.wikipedia.org/wiki/Pattern_matching

OutgoingIncoming
Hey! We are on Facebook now! »