Прозорість посилань (інформатика): відмінності між версіями
[перевірена версія] | [перевірена версія] |
Вилучено вміст Додано вміст
м автоматична заміна {{Не перекладено}} вікі-посиланнями на перекладені статті |
|||
Рядок 1:
'''Прозорість посилань''' і '''непрозорість посилань''' — це властивості частин [[Комп'ютерна програма|комп'ютерних програм]]. [[Вираз (інформатика)|Вираз]] називають прозорим за посиланнями, якщо його можна [[Рерайтинг (математика)|замінити]] на його [[Величина (інформатика)|значення]] і це не вплине на поведінку програми<ref>{{cite book|title=Concepts in Programming Languages|author=John C. Mitchell|year=2002|publisher=Cambridge University Press|page=[https://books.google.gr/books?id=7Uh8XGfJbEIC&pg=PA78&dq=referential+transparency&hl=en&sa=X&redir_esc=y#v=onepage&q=referential%20transparency&f=false 78]}}</ref>. Для цього потрібно аби вираз був
В [[математика|математиці]] всі функції прозорі за посиланнями, за визначенням [[функція (математика)|математичної функції]]. Проте, в програмуванні це не завжди так, і часто для уникнення плутанити використовуються терміни [[Підпрограма|процедура]] та [[Метод (програмування)|метод]]. Ключовою характеристикою [[Функційне програмування|функційного програмування]] є те, що воно дозволяє лише прозорі за посиланням функції.
Рядок 14:
== Приклади й контрприклади ==
Якщо в виразі задіяні лише
Візьмемо функцію, що не приймає параметрів і повертає дані, введені з [[Клавіатура|клавіатури]]. Припустимо, її виклик такий: <code>GetInput()</code>. Значення повернуте функцією <code>GetInput()</code> залежить від вводу користувача, отже різні виклики <code>GetInput()</code> з однаковими параметрами (порожній список) можуть повертати різні значення. Звідси, <code>GetInput()</code> ані детермінована, ані прозора за посиланнями.
|