Преглед садржаја:
Дефиниција - Шта значи референтна транспарентност?
Референтна транспарентност је својство одређеног дијела програма или програмског језика, посебно функционалних програмских језика попут Хаскелл-а и Р. Израз у програму се каже да је референцијално транспарентан ако га се може замијенити његовом вриједности и резултирајуће понашање је исто као и пре промене. То значи да се понашање програма не мијења без обзира да ли је кориштени улаз референтна или стварна вриједност на коју референца указује.
Техопедиа објашњава референтну транспарентност
Референтна транспарентност има своје коријене у аналитичкој филозофији, која је грана филозофије која проучава природне језичке конструкције, аргументе и изјаве засноване на методама математике и логике и нема мало везе са програмирањем, иако су га усвојили рачунарски научници.
Концепт је једноставан, "референт", ствар на коју се израз односи, може се употребити за замену "препоручитеља" без промене значења израза. На пример, изјава "Лукеов отац је зли човек", "Лукеов отац" помиње "Дартх Вадер" у знаку Стар Варс. Дакле, изјава је референтно транспарентна јер се "Лукеов отац" може било када заменити са "Дартх Вадер" и изјава се не би променила у значењу. Међутим, у изјави „публика није знала све док„ Царство узвраћа ударац “да је Лукеов отац заправо Дартх Вадер“ није референцијално транспарентан израз, јер ако је „Лукеов отац“ замењен са „Дартх Вадер“, тај израз постаје „ публика није знала све док "Империја узвраћа ударац" да је Дартх Вадер заправо Дартх Вадер, "што има потпуно другачије значење.
У односу на програмирање, концепт је на први поглед исти, али многи филозофи се не слажу да је концепт добро имплементиран или се преноси у програмским језицима. Али у општем програмирању, то једноставно значи да израз може бити замењен његовом резултирајућом вредношћу без утицаја на понашање програма. На пример, функција плусОне (к) једноставно додаје једну без обзира на вредност к, тако да ако знамо да је к = 5, можемо сигурно да заменимо функцију са вредност 6 у изразу који ствара исто понашање када користите плусОне (Икс). Али ако постоји екстерна варијабла унутар израза која се споља контролише, рецимо у функцији плусИ (к) где је И унутар функције екстерно контролисано, резултирајуће понашање можда неће бити исто - у овом случају то није референтно транспарентно израз.
