REPL (Read-eval-print loop — цикл читання-обчислення-друку) — просте інтерактивне середовище програмування. Цей термін найчастіше вживається стосовно інтерактивного середовища мови програмування Lisp, але може застосовуватись і до інтерактивних середовищ мов Smalltalk, Python, Ruby, Haskell, Javascript та ін.

В такому середовищі користувач може вводити вирази, які середовище одразу обчислить, а результат обчислень відобразить користувачеві. Назва read-eval-print loop походить від імен примітивів мови Lisp, що реалізують таку функціональність:

  • Функція read читає один вираз і перетворює його в відповідну структуру даних у пам'яті.
  • Функція eval приймає одну таку структуру даних і обчислює вираз, що відповідає їй.
  • Функція print приймає результат обчислення виразу і друкує його користувачеві.

Щоб реалізувати REPL-середовище для певної мови, досить реалізувати три перелічені вище функції й об'єднати їх у нескінченний цикл.

REPL-середовище дуже зручне при вивченні нової мови, бо надає користувачеві швидкий зворотний зв'язок.

Особливості LispРедагувати

ВпровадженняРедагувати

Мінімальне визначення:

(define (REPL env)
  (print (eval env (read)))
  (REPL env) )

Де env являє собою початкове eval-uation середовище. Також передбачається, що env може бути деструктивно оновленим eval.

Див. такожРедагувати

ПосиланняРедагувати