Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Dopasowanie do wzorca - Wikipedia, wolna encyklopedia

Dopasowanie do wzorca

Z Wikipedii

Dopasowanie do wzorca to operacja, gdzie pewne wyrażenie sprawdza się ze wzorcem, w którym może znajdować się jedno lub więcej "wolnych miejsc". W wyniku, o ile nastąpiło dopasowanie otrzymuje się listę wyrażeń które dopasowały się do wolnych miejsc wzorca.

Dopasowywanie do wzorca jest bardzo ekspresywną techniką programistyczną. Dwa najpopularniejsze systemy to:

[edytuj] Wyrażenia regularne

W większości nowych języków wyrażeń regularnych można używać jako wzorców, np (Perl):

if ($numer_ip =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)
{
    # pasuje do wzorca, kolejne liczby w $1 $2 $3 $4
} else {
    # nie pasuje do wzorca
}

Dopasowywanie to jest jednym z głównych źródeł siły ekspresji i zwięzłości Perla i innych nowych języków (Ruby, PHP, Python itd.) Analogiczny kod w C musiałby korzystać z biblioteki zapewniającej dopasowywane do wzorców (np. PCRE), lub byłby proporcjonalnie gigantyczny, i zarazem mało czytelny i z dużymi szansami na wystąpienie błędów.

[edytuj] Wzorce symboliczne

W językach funkcyjnych zwykle używa się wzorców symbolicznych - termów ze zmiennymi które dopasowuje się do danego wyrażenia przez unifikację.

Na przykład lista to jak wiadomo nil albo cons. Tak więc możemy (Ocaml):

match zmienna with
           [] -> "Lista jest pusta"
|       x::[] -> "Lista ma jeden element: " ^ x
|    x::y::[] -> "Lista ma dwa elementy: " ^ x ^ " i " ^ y
| x::y::z::[] -> "Lista ma trzy elementy: " ^ x ^ ", " ^ y ^" i " ^ z
| x::y::z::_  -> "Lista ma więcej niż trzy elementy: " ^ x ^ ", " ^ y ^", " ^ z ^ "..."

Czy też przekształcać symbole w inne wyrażenia (Ocaml, kod z texvc):

let get_encoding = function
    UTF8   -> "\\usepackage{ucs}\n\\usepackage[utf8]{inputenc}\n"
  | LATIN1 -> "\\usepackage[latin1]{inputenc}\n"
  | LATIN2 -> "\\usepackage[latin2]{inputenc}\n"

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com