Innholdsfortegnelse:
Definisjon - Hva betyr referans transparens?
Referansetransparens er en egenskap til en spesifikk del av et program eller et programmeringsspråk, spesielt funksjonelle programmeringsspråk som Haskell og R. Et uttrykk i et program sies å være referensielt gjennomsiktig hvis det kan erstattes med dets verdi og den resulterende atferden er det samme som før endringen. Dette betyr at programmets oppførsel ikke endres enten input som brukes er en referanse eller en faktisk verdi som referansen peker på.
Techopedia forklarer referansetransparens
Referansetransparens har sine røtter i analytisk filosofi, som er en gren av filosofien som studerer naturlige språkkonstruksjoner, argumenter og uttalelser basert på metodene for matematikk og logikk og har lite å gjøre med programmering, selv om det er vedtatt av dataforskere.
Konseptet er enkelt, "referenten", tingen som et uttrykk refererer til, kan brukes til å erstatte "henviseren" uten å endre betydningen av uttrykket. For eksempel refererer utsagnet "Faren til Luke er en ond mann", "Faren til Luke" "Darth Vader" i Star Wars lore. Så uttalelsen er referensiell gjennomsiktig, siden "Lukas far" når som helst kan erstattes med "Darth Vader" og uttalelsen ville ikke endre seg i betydningen. Imidlertid, i uttalelsen "publikum visste ikke før 'The Empire Strikes Back' at Lukas far faktisk er Darth Vader", er ikke et referensielt gjennomsiktig uttrykk, siden hvis "Luke's far" erstattes med "Darth Vader" blir uttrykket "the publikum visste ikke før 'The Empire Strikes Back' at Darth Vader faktisk er Darth Vader, 'som har en helt annen betydning.
I forhold til programmering er konseptet ved første øyekast det samme, men mange filosofer er uenige i at konseptet implementeres eller overføres godt i programmeringsspråk. Men i generell programmering betyr dette ganske enkelt at et uttrykk kan erstattes av dets resulterende verdi uten å påvirke programmets oppførsel. For eksempel legger funksjonen plusOne (x) ganske enkelt en til hva verdien av x er, så hvis vi vet at x = 5 så kan vi trygt erstatte funksjonen med verdien 6 i et uttrykk som gir samme oppførsel når vi bruker plusOne (x). Men hvis det er en ekstern variabel i uttrykket som er kontrollert eksternt, si i funksjonen pluss Y (x) der Y i funksjonen er eksternt kontrollert, kan det hende at den resulterende oppførselen ikke er den samme - i dette tilfellet er dette ikke referanselystent uttrykk.




