REPL: Đây là một thủ tục chỉ lặp, chấp nhận một lệnh tại một thời điểm, thực hiện nó và in kết quả.
Ba bước tại mỗi lần lặp của vòng lặp là:
- Gọi đọc để đọc các ký tự tạo thành biểu thức văn bản từ bộ đệm đầu vào bàn phím và xây dựng cấu trúc dữ liệu để thể hiện nó,
- Gọi eval để đánh giá biểu thức - bằng trực giác, eval "tìm ra ý nghĩa của biểu thức" và "thực hiện những gì nó nói", trả về giá trị của biểu thức - và
- Gọi viết để in một văn bản đại diện của kết quả từ eval, để người dùng có thể nhìn thấy nó.
Bạn có thể viết vòng lặp đọc-in của riêng mình cho các chương trình của riêng bạn, để người dùng có thể nhập biểu thức và bạn có thể diễn giải chúng theo bất kỳ cách nào bạn muốn. Bạn có thể khởi động vòng lặp đọc-in của mình (bằng cách nhập vào (vòng lặp lặp lại)) và nó sẽ tiếp quản từ vòng lặp đọc-in sơ đồ thông thường, diễn giải các biểu thức theo cách của bạn.
Đây là một vòng lặp đọc-in rất đơn giản:
(define (rep-loop)
(display "repl>") ; print a prompt
(write (eval (read))) ; read expr., pass to eval, write result
(rep-loop)) ; loop (tail-recursive call) to do it again
Lưu ý rằng biểu thức (write (eval (read))) thực hiện mọi thứ theo thứ tự đọc-eval-print thích hợp, bởi vì đối số cho mỗi lệnh gọi thủ tục được tính trước cuộc gọi thực tế.
Shell tương tác: Shell tương tác đọc các lệnh từ đầu vào của người dùng trên thiết bị đầu cuối. Trong số những thứ khác, shell như vậy đọc các tệp khởi động khi kích hoạt, hiển thị lời nhắc và cho phép kiểm soát công việc theo mặc định. Người dùng có thể tương tác với shell. Đó là cách tên shell tương tác ra đời. Hãy để chúng tôi xem xét kịch bản bash này:
#!/bin/bash
echo -n "Enter the value of variable 'var1': "
read var1
echo "var1 = $var1"
echo
echo -n "Enter the values of variables 'var2' and 'var3' "
echo =n "(separated by a space or tab): "
read var2 var3
echo "var2 = $var2 var3 = $var3"
# If you input only one value,
#+ the other variable(s) will remain unset (null).
exit 0
Bây giờ đoạn script trên tương tác với người dùng, nó yêu cầu người dùng nhập các đầu vào dựa trên đó nó thực hiện các phép tính của nó. Đó là lý do tại sao nó hoạt động như một vỏ tương tác.
Similary, trình thông dịch python mà hầu hết mọi người sử dụng để học python là một trình tương tác khi nó giao tiếp với người dùng của nó.