make_twice
ফাংশনকে কল করছি আর এর ডেফিনেশন মোতাবেক এর কাছে একটি ফাংশন এবং একটি ভ্যালু পাঠিয়েছি। যে ফাংশন পাঠিয়েছি সেটা হচ্ছে add_five
এবং ভ্যালুটি 10
. অন্যদিকে make_twice
ফাংশনের মধ্যে func
হিসেবে সেই add_five
ফাংশনকে ক্যাচ করছি এবং একাধিকবার সেটাকে কল করছি। আবার, func
তথা add_five
এর একটি আর্গুমেন্ট লাগে। তাই, প্রথমবার এক্সিকিউটের সময় এর মধ্যে 10 কে পাঠিয়ে দিচ্ছি এবং রিটার্ন হয়ে আসছে 15 এবং দ্বিতীয়বার সেই 15 -ই গিয়ে ফাইনালি 20 কে রেজাল্ট হিসেবে পাচ্ছি।my_pure_function
দুটো আর্গুমেন্ট নেয় এবং সেগুলোর উপর কিছু ক্যালকুলেশন করে একটি ভ্যালু রিটার্ন করে। শুরু থেকে শেষ নাগাদ এই ফাংশন বাইরের কোন ভ্যালুর উপর নির্ভর করে না বা বাইরের কোন ভ্যালুকে পরিবর্তনের সাথে সম্পৃক্ত নয়। এটাকে একটা পিওর ফাংশন বলা যেতে পারে।my_impure_function
এর কাছে একটি ভ্যালু গেলে সে তার বাইরে অবস্থান করা একটি লিস্ট যার নাম, my_list
, এর মধ্যে সেই ভ্যালুকে ঢুকিয়ে দিচ্ছে। এই ফাংশনের কাজের গণ্ডি একটু বাড়তি। এটাকে ইম্পিওর ফাংশন বলা হয়।