www.wikidata.de-de.nina.az
Pattern Matching englisch fur Musterabgleich oder musterbasierte Suche ist ein Begriff fur symbolverarbeitende Verfahren die anhand eines vorgegebenen Musters diskrete Strukturen oder Teilmengen einer diskreten Struktur identifizieren Das Pattern Matching ist beispielsweise eine Methode der phylogenetischen Analyse in der Bioinformatik Inhaltsverzeichnis 1 Grundlagen 2 Anwendungsgebiete 2 1 Programmierung 2 2 Textverarbeitung 3 Siehe auch 4 Literatur 5 EinzelnachweiseGrundlagen BearbeitenEine diskrete Struktur besteht aus diskreten Elementen Symbolen und Beziehungen zwischen diesen Beispiele sind Zeichenketten aber auch Baume oder Graphen Das Suchmuster selbst ist ebenfalls eine diskrete Struktur die aber durch Verwendung zusatzlicher Metazeichen eine ganze Klasse von Strukturen beschreiben kann Im Gegensatz zur Mustererkennung die kontinuierliche Strukturen interpretiert operiert das Pattern Matching von vornherein auf einer symbolischen Reprasentation Das Pattern Matching spielt jedoch nicht nur bei der Suche sondern auch bei der muster und regelbasierten Transformation diskreter Strukturen eine zentrale Rolle In Ersetzungs oder Transformationssystemen bildet das Pattern Matching den ersten Schritt Dabei werden Teile des Musters mit Teilen der analysierten Struktur identifiziert Die gefundenen Teil Strukturen gehen dann als Parameter in die Transformationsfunktion ein Beispiele fur solche Transformationen sind Textersetzung in Zeichenketten und Graphersetzungssysteme Anwendungsgebiete BearbeitenProgrammierung Bearbeiten In einigen funktionalen oder logischen Programmiersprachen wird Pattern Matching genutzt um Daten anhand ihrer Struktur zu verarbeiten z B Scala Objective CAML ML Haskell Erlang Opal Python Beispiel Fallunterscheidung Eine mogliche Definition der n ten Fibonaccizahl ist fib n 0 wenn n 0 1 wenn n 1 fib n 1 fib n 2 sonst displaystyle text fib n begin cases 0 amp text wenn n 0 1 amp text wenn n 1 text fib n 1 text fib n 2 amp text sonst end cases nbsp Diese Definition kann so mithilfe von Pattern Matching direkt nach Haskell ubertragen werden Matcht die ersten beiden Falle fib 0 0 fib 1 1 Alle anderen Zahlen n sind definiert als fib n fib n 1 fib n 2 Beispiel In Haskell werden die Argumente in einer Funktionsdefinition mit Pattern gematcht Ein Pattern kann muss aber nicht wie im vorherigen Beispiel ein elementarer Wert zum Beispiel 0 sein sondern kann auch einen Daten Konstruktor beschreiben matcht die leere Liste Konstruktor f matcht alle Listen der Lange gt 0 Konstruktor wobei x den Kopf und xs den Listenrest enthalt f x xs Das aquivalente Beispiel in der Syntax von Python ab Version 3 10 1 match n case case x xs Textverarbeitung Bearbeiten Hauptartikel String Matching Algorithmus Pattern Matching wird auch verwendet um Text zu bearbeiten In Programmiersprachen wie Perl oder awk und auch in den meisten Texteditoren existieren Werkzeuge um einen Text nach einem Muster zu durchsuchen Die Muster bestehen aus regularen Ausdrucken Siehe auch BearbeitenSuchverfahren Musteranalyse Levenshtein Distanz Gestalt Pattern Matching Unscharfe Suche Phonetische SucheLiteratur BearbeitenSimon Peyton Jones Hrsg Haskell 98 Language and Libraries The Revised Report Cambridge University Press 2003 ISBN 0 521 82614 4 englisch haskell org Abschnitt 3 17 HTML Version Richard Bird Introduction to Functional Programming using Haskell 2 Auflage Prentice Hall Europe 1998 ISBN 0 13 484346 0 englisch Einzelnachweise Bearbeiten Daniel F Moisset PEP 636 Structural Pattern Matching Tutorial In python org 12 September 2020 abgerufen am 28 Juni 2022 englisch Abgerufen von https de wikipedia org w index php title Pattern Matching amp oldid 224062922