Turinys:
Apibrėžimas - ką reiškia referencinis skaidrumas?
Referencinis skaidrumas yra tam tikros programos dalies arba programavimo kalbos, ypač funkcinių programavimo kalbų, tokių kaip Haskell ir R., savybė. Programos išraiška yra sakoma referenciškai skaidri, jei ją galima pakeisti savo verte, o dėl to atsirandantis elgesys yra tas pats, kaip ir prieš pasikeitimą. Tai reiškia, kad programos elgesys nepasikeičia, nesvarbu, koks įvestis yra nuoroda, ar faktinė vertė, kurią nurodo nuoroda.
„Techopedia“ paaiškina referencinį skaidrumą
Referencinis skaidrumas grindžiamas analitine filosofija, kuri yra filosofijos šaka, tirianti natūralios kalbos konstrukcijas, argumentus ir teiginius, paremtus matematikos ir logikos metodais, ir turinti mažai ką bendro su programavimu, nors ją priėmė kompiuterių mokslininkai.
Sąvoka yra paprasta, „referentas“, reiškiantis reiškinį, gali būti naudojamas „referentą“ pakeisti nepakeičiant išraiškos reikšmės. Pavyzdžiui, teiginys „Luko tėvas yra blogis“, „Luko tėvas“ nurodo „Darth Vader“ Žvaigždžių karų krašte. Taigi teiginys yra referenciniu požiūriu skaidrus, nes „Luko tėvas“ bet kada gali būti pakeistas „Darth Vader“ ir teiginio reikšmė nepasikeis. Tačiau teiginyje „auditorija nežinojo iki tol, kol„ Imperija smogė atgal “, kad Luko tėvas iš tikrųjų yra Darthas Vaderis“ nėra nuorodiniu požiūriu skaidrus posakis, nes jei „Luko tėvas“ pakeičiamas „Darth Vader“, išraiška tampa „ Iki „The Empire Strikes Back“ publika nežinojo, kad Darth Vader iš tikrųjų yra Darth Vader “, kuris turi visai kitą prasmę.
Kalbant apie programavimą, iš pirmo žvilgsnio koncepcija yra ta pati, tačiau daugelis filosofų nesutinka, kad programavimo kalbomis koncepcija įgyvendinama ar perkeliama gerai. Tačiau kalbant apie bendrą programavimą, tai tiesiog reiškia, kad išraišką galima pakeisti išvestine reikšme, nedarant jokios įtakos programos elgesiui. Pvz., Funkcija plusOne (x) paprasčiausiai prideda vieną prie bet kurios x reikšmės, taigi, jei žinome, kad x = 5, galime saugiai pakeisti funkciją 6 reikšme išraiškai, kuri tą patį elgesį sukelia naudodama plusOne. (x). Bet jei išraiškai yra išorinis kintamasis, kuris yra valdomas išorėje, tarkime funkcijoje plusY (x), kur Y funkcijos viduje kontroliuojamas išorėje, gaunamas elgesys gali būti ne tas pats - šiuo atveju tai nėra referenciškai skaidrus išraiška.
