Indholdsfortegnelse:
Definition - Hvad betyder referencetransparens?
Henvisning til gennemsigtighed er en egenskab for en bestemt del af et program eller et programmeringssprog, især funktionelle programmeringssprog som Haskell og R. Et udtryk i et program siges at være referencemæssigt gennemsigtigt, hvis det kan erstattes med dets værdi og den resulterende opførsel er det samme som før ændringen. Dette betyder, at programmets opførsel ikke ændres, uanset om det anvendte input er en reference eller en faktisk værdi, som referencen peger på.
Techopedia forklarer gennemsigtig gennemsigtighed
Henvisning til gennemsigtighed har sine rødder i analytisk filosofi, som er en gren af filosofi, der studerer naturlige sprogkonstruktioner, argumenter og udsagn baseret på metoderne i matematik og logik og har lidt at gøre med programmering, skønt det er blevet vedtaget af computerforskere.
Konceptet er enkelt, "referenten", det, som et udtryk henviser til, kan bruges til at erstatte "henviseren" uden at ændre betydningen af udtrykket. For eksempel refererer udsagnet "Lukas far er en ond mand", "Lukas far" til "Darth Vader" i Star Wars lore. Så udsagnet er referencemæssigt gennemsigtigt, da "Luke's far" til enhver tid kan erstattes med "Darth Vader", og udsagnet ville ikke ændre sig i betydningen. I udsagnet "publikum vidste først, før 'The Empire Strikes Back', at Luke's far faktisk er Darth Vader", er det ikke et referencemæssigt gennemsigtigt udtryk, da hvis "Luke's far" erstattes med "Darth Vader" bliver udtrykket "the publikum vidste først før 'The Empire Strikes Back', at Darth Vader faktisk er Darth Vader, 'som har en helt anden betydning.
I forhold til programmering er konceptet ved første øjekast det samme, men mange filosofer er uenige i, at konceptet implementeres eller overføres godt i programmeringssprog. Men i generel programmering betyder det ganske enkelt, at et udtryk kan erstattes af dets resulterende værdi uden at have indflydelse på programmets opførsel. F.eks. Tilføjer funktionen plusOne (x) simpelthen en til uanset værdien af x, så hvis vi ved, at x = 5, kan vi med sikkerhed erstatte funktionen med værdien 6 i et udtryk, der giver den samme opførsel, når vi bruger plusOne (x). Men hvis der er en ekstern variabel i det udtryk, der styres eksternt, siger du i funktionen plusY (x), hvor Y i funktionen er eksternt kontrolleret, er den resulterende opførsel muligvis ikke den samme - i dette tilfælde er dette ikke en referencemæssigt gennemsigtig ekspression.
