Kazalo:
Opredelitev - Kaj pomeni referenčna preglednost?
Referenčna preglednost je lastnost določenega dela programa ali programskega jezika, zlasti funkcionalnih programskih jezikov, kot sta Haskell in R. Izraz v programu naj bi bil referenčno pregleden, če ga je mogoče nadomestiti z njegovo vrednostjo in posledično vedenje je enako kot pred spremembo. To pomeni, da se vedenje programa ne spremeni, ali je uporabljeni vhod referenčna ali dejanska vrednost, na katero sklic kaže.
Tehopedija pojasnjuje referenčno preglednost
Referenčna preglednost ima svoje korenine v analitični filozofiji, ki je veja filozofije, ki preučuje naravne jezikovne konstrukte, argumente in izjave, ki temeljijo na metodah matematike in logike in nima veliko povezave s programiranjem, čeprav so jo sprejeli računalničarji.
Koncept je preprost, "referenta" - stvar, na katero se nanaša izraz, se lahko uporablja za nadomeščanje "napotitelja", ne da bi spremenil pomen izraza. Na primer, izjava "Lukeov oče je hudoben človek", "Lukeov oče" v filmu Star Wars navaja "Darth Vader". Torej je izjava referenčno pregledna, saj lahko "Lukeovega očeta" kadar koli zamenjamo z "Darth Vader" in se izjava ne bi spremenila v pomenu. Vendar pa v izjavi "občinstvo do" Imperija ne odbije ", da je Luketov oče pravzaprav Darth Vader" ni referenčno pregleden izraz, saj če "Lukeovega očeta" nadomestimo z "Darth Vader", izraz postane " občinstvo do 'Imperija se ne vrača', je vedelo, da je Darth Vader pravzaprav Darth Vader, "ki ima povsem drugačen pomen.
V zvezi s programiranjem je koncept na prvi pogled enak, vendar se mnogi filozofi ne strinjajo, da je koncept v programskih jezikih implementiran ali prenašal dobro. Toda v splošnem programiranju to preprosto pomeni, da lahko izraz nadomestimo s svojo vrednostjo, ne da bi to vplivalo na vedenje programa. Na primer, funkcija plusOne (x) preprosto doda eno, ne glede na vrednost x, tako da, če vemo, da je x = 5, lahko funkcijo varno nadomestimo z vrednostjo 6 v izrazu, ki povzroči isto vedenje pri uporabi plusOne (x). Če pa znotraj izraza obstaja zunanja spremenljivka, ki je zunaj nadzorovana, recimo v funkciji plusY (x), kjer je Y znotraj funkcije zunaj nadzorovano, posledično vedenje morda ni enako - v tem primeru to ni referenčno pregledno izraz.
