রিপল: এটি এমন একটি পদ্ধতি যা কেবল লুপ করে, একবারে একটি কমান্ড গ্রহণ করে, কার্যকর করে এবং ফলাফল মুদ্রণ করে।
লুপের প্রতিটি পুনরাবৃত্তির তিনটি ধাপ হ'ল:
- কীবোর্ড ইনপুট বাফার থেকে একটি পাঠ্য অভিব্যক্তি তৈরি করে এমন অক্ষরগুলি পড়তে পড়তে কল করা এবং এটি উপস্থাপনের জন্য একটি ডেটা কাঠামো তৈরি করে,
- অভিব্যক্তিটির মূল্যায়ন করার জন্য কলকে কল করা - স্বজ্ঞাতভাবে, eval "এই অভিব্যক্তির অর্থ কী তা বোঝায়" এবং "এটি করার জন্য যা বলে," তা "এক্সপ্রেশনটির মান ফিরিয়ে দেওয়া - এবং
- লিখিত কলকে কল হিসাবে ফলস্বরূপ ফলাফলের একটি পাঠ্য উপস্থাপনা মুদ্রণ করা হয়, যাতে ব্যবহারকারী এটি দেখতে পারে।
আপনি নিজের প্রোগ্রামগুলির জন্য আপনার নিজের পঠন-evভাল-প্রিন্ট লুপটি লিখতে পারেন, যাতে ব্যবহারকারীরা প্রকাশ করতে পারেন এবং আপনি যেভাবে চান সেগুলি ব্যাখ্যা করতে পারেন। আপনি আপনার পঠন-ইভাল-প্রিন্ট লুপটি শুরু করতে পারেন (টাইপ করে (রিপ-লুপ)), এবং এটি আপনার অভিব্যক্তিকে ব্যাখ্যা করে, সাধারণ স্কিম রিড-ইভাল-প্রিন্ট লুপ থেকে গ্রহণ করবে।
এখানে একটি খুব সাধারণ পঠনযোগ্য alভাল-প্রিন্ট লুপ:
(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
লক্ষ্য করুন যে অভিব্যক্তি (লিখুন (eval (পড়ুন)) যথাযথ পঠন-evওয়াল-মুদ্রণ ক্রমে কাজ করে, কারণ প্রতিটি প্রক্রিয়া কলের যুক্তিটি আসল কল করার আগে গণনা করা হয়।
ইন্টারেক্টিভ শেল: একটি ইন্টারেক্টিভ শেল একটি টার্মিনালে ব্যবহারকারীর ইনপুট থেকে কমান্ডগুলি পড়ে। অন্যান্য জিনিসের মধ্যে, এই জাতীয় শেল অ্যাক্টিভেশনে স্টার্টআপ ফাইলগুলি পড়ে, একটি প্রম্পট প্রদর্শন করে এবং ডিফল্টরূপে কাজ নিয়ন্ত্রণ সক্ষম করে। ব্যবহারকারী শেলের সাথে ইন্টারঅ্যাক্ট করতে পারে theএমন ইন্টারেক্টিভ শেল নামটি কীভাবে কার্যকর হয়েছিল। আসুন এই বাশ স্ক্রিপ্টটি বিবেচনা করুন:
#!/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
এখন উপরের স্ক্রিপ্টটি ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করে, এটি ব্যবহারকারীকে ইনপুট লিখতে বলে যার ভিত্তিতে এটি তার গণনা করে। এ কারণেই এটি একটি ইন্টারেক্টিভ শেলের মতো আচরণ করে।
সিমিলারি, পাইথন দোভাষী যা বেশিরভাগ লোক পাইথন শিখতে ব্যবহার করে এটি একটি ইন্টারেক্টিভ যা এটি ব্যবহারকারীর সাথে যোগাযোগ করে।