Sikkerhed (programmering)

Beskyttelse ( guard expression , guard expression ) er et logisk udtryk , der har til formål at begrænse beregningsprocesser og vælge en beregningsmulighed. Bruges normalt i funktionelle programmeringssprog (f.eks . Haskell , Erlang ) [1] .

Eksempler på vagtudtryk

Alle efterfølgende vagtudtryk er i funktionelt sprog Haskell , som bruger denne teknologi meget ofte. Alle sådanne udtryk er fremhævet med fed skrift i koderne .

Eksempel 1 - Listeinkludering

Funktionen divisors returnerer en liste over divisorer af det givne tal n. Den anden linje i definitionen viser en vagt, der begrænser valget af et element i listen over divisorer xtil kun en sådan værdi, der deler den oprindelige parameter nuden en rest.

divisorer n = [x | x <- [1..(n - 1)], n "mod" x == 0 ]

Eksempel 2 - Vagt i funktionstekst

Funktionen signreturnerer tegnet for det givne tal x. Vagtudtryk skrives efter symboler ( |). De giver dig mulighed for at vælge et eller andet alternativ, når du skal beregne fortegnet for et tal. Denne måde at gemme på bruges ofte i stedet for mønstertilpasningsmekanismen , når der ikke er nogen måde eksplicit at beskrive mønsteret i funktionen (f.eks. hvis funktionen er en generisk applikationsfunktion til behandling af værdier af en eller anden type , der er en instans af en klasse).

tegn x | x < 0 = -1 | x == 0 = 0 | x > 0 = 1

Bevogtning giver mulighed for, i tilfælde af et ugyldigt matchende udtryk, at gå videre til det næste. Hvis det foregående eksempel er formateret som en mønstertilpasningsoperator, vil det x = 0første match ( x < 0) forårsage en fejl, hvis handler vil stoppe yderligere forsøg på at matche. I tilfælde af, at alle udtryk ikke er sande, er det desuden praktisk at fange sådanne situationer ved at indstille den umiddelbare sandhedsværdi True. For læsbarheden giver Prelude standardbiblioteket den ellers konstante, som ligner endnu mere en switch i algoritmiske sprog.

Se også

Noter

  1. Cesarini, Thompson, 2012 .

Litteratur