Ліниві обчислення

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Ліниві обчислення, ледачі обчислення або відкладені обчислення (англ. lazy evaluation) — концепція, згідно з якою обчислення слід відкладати до тих пір, поки не знадобиться їх результат. Концепція може бути реалізованою як на рівні часу виконання в деяких мовах програмування, так і на рівні застосування спеціальних алгоритмів реалізації програмного коду (так зване «ліниве програмування»[1]).

Відкладені обчислення дозволяють скоротити загальний обсяг обчислень за рахунок економії на тих обчисленнях, результати яких не будуть використані. Відкладені обчислення природним чином базуються на функціональній парадигмі програмування, оскільки функціональні мови програмування, що реалізують відкладені обчислення, зарекомендували себе як інструменти, зручні для прототипування і швидкої розробки програмного забезпечення, а також для проектування електронно-обчислювальних пристроїв.

Мови програмування, що реалізують відкладені обчислення на рівні часу виконання:

  • Haskell - мова програмування, в якій найбільш повно реалізовані відкладені обчислення. Не має оператора присвоювання значення змінної, а тільки операцію визначення функціональної залежності. Має списки відкладених обчислень, що дозволяють програмістам оперувати нескінченними послідовностями.
  • Mathematica і Maxima допускають відкладені обчислення за допомогою оператора присвоювання «: = ».
  • Концепція відкладених обчислень, реалізована в Javascript-бібліотеках Streams.js, linq.js і node-lazy.

Посилання[ред.ред. код]

  1. Ленивое программирование и ленивые вычисления (рос.)