REPL: Ini adalah prosedur yang hanya memotong , menerima satu perintah pada satu waktu, menjalankannya, dan mencetak hasilnya.
Tiga langkah pada setiap iterasi loop adalah:
- Memanggil membaca untuk membaca karakter yang membentuk ekspresi tekstual dari buffer input keyboard, dan membuat struktur data untuk mewakilinya,
- Memanggil eval untuk mengevaluasi ekspresi - secara intuitif, eval "mengetahui apa arti ekspresi itu," dan "melakukan apa yang dikatakannya untuk dilakukan," mengembalikan nilai ekspresi - dan
- Memanggil menulis untuk mencetak representasi tekstual dari hasil eval, sehingga pengguna dapat melihatnya.
Anda bisa menulis loop read-eval-print Anda sendiri untuk program Anda sendiri, sehingga pengguna dapat mengetikkan ekspresi, dan Anda bisa menafsirkannya dengan cara apa pun yang Anda inginkan. Anda dapat memulai loop read-eval-print Anda (dengan mengetikkan (rep-loop)), dan itu akan mengambil alih dari loop read-eval-print Skema normal, menafsirkan ekspresi dengan cara Anda.
Inilah loop read-eval-print yang sangat sederhana:
(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
Perhatikan bahwa ekspresi (write (eval (read))) melakukan hal-hal dalam urutan read-eval-print yang tepat, karena argumen untuk setiap panggilan prosedur dihitung sebelum panggilan yang sebenarnya.
Shell Interaktif: Shell interaktif membaca perintah dari input pengguna pada terminal. Antara lain, shell tersebut membaca file startup saat aktivasi, menampilkan prompt, dan memungkinkan kontrol pekerjaan secara default. Pengguna dapat berinteraksi dengan shell. Itulah bagaimana nama shell interaktif muncul. Mari kita perhatikan skrip bash ini:
#!/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
Sekarang skrip di atas berinteraksi dengan pengguna, ia meminta pengguna untuk memasukkan input berdasarkan yang dilakukannya perhitungan. Itu sebabnya berperilaku seperti shell interaktif.
Sama halnya, interpreter python yang digunakan kebanyakan orang untuk mempelajari python adalah yang interaktif saat berkomunikasi dengan penggunanya.