পিওর ফাংশন হলো ফাংশনাল প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা নির্দিষ্ট কিছু নিয়ম মেনে কাজ করে এবং কোডের পূর্বাভাসযোগ্যতা ও স্থায়িত্ব বৃদ্ধি করে। পিওর ফাংশন এমন একটি ফাংশন, যা কেবল ইনপুটের উপর নির্ভর করে আউটপুট প্রদান করে এবং বাইরের কোনো পরিবর্তন আনে না বা কোনো সাইড এফেক্ট তৈরি করে না। প্রতিবার একই ইনপুট দিলে পিওর ফাংশন সবসময় একই আউটপুট প্রদান করে।
পিওর ফাংশনের বৈশিষ্ট্য
১. নির্ভরশীলতা (Deterministic Behavior)
পিওর ফাংশন প্রতিবার একই ইনপুট দিলে সবসময় একই আউটপুট প্রদান করে। এই নির্ভরশীলতা ফাংশনের পূর্বাভাসযোগ্যতা বৃদ্ধি করে এবং কোডকে সহজে টেস্ট করার সুযোগ দেয়। উদাহরণস্বরূপ, দুটি সংখ্যা যোগ করার একটি পিওর ফাংশন প্রতিবার একই দুটি সংখ্যার জন্য একই ফলাফল প্রদান করবে।
উদাহরণ (Python):
def add(x, y):
return x + y
print(add(3, 5)) # আউটপুট: 8
print(add(3, 5)) # আউটপুট: 8২. সাইড এফেক্ট নেই (No Side Effects)
পিওর ফাংশন বাইরের কোনো ভেরিয়েবল পরিবর্তন করে না বা বাইরের কোনো স্টেট পরিবর্তন করে না। এটি শুধুমাত্র তার ইনপুটের উপর ভিত্তি করে আউটপুট প্রদান করে। এতে করে ফাংশনটি স্বয়ংসম্পূর্ণ থাকে এবং অন্য কোড অংশে কোনো প্রভাব ফেলে না।
উদাহরণস্বরূপ, নিচের কোডটি একটি পিওর ফাংশন, কারণ এটি শুধু ইনপুটের উপর নির্ভর করে এবং কোনো গ্লোবাল ভেরিয়েবল পরিবর্তন করে না:
def multiply(x, y):
return x * yপিওর ফাংশনের উদাহরণ ও অপিওর ফাংশনের তুলনা
পিওর ফাংশনের উদাহরণ:
def square(x):
return x * xএখানে square ফাংশনটি পিওর ফাংশন কারণ এটি কোনো বাইরের স্টেটের উপর নির্ভর করে না এবং কোনো সাইড এফেক্ট সৃষ্টি করে না।
অপিওর ফাংশনের উদাহরণ:
total = 0
def add_to_total(x):
global total
total += x
return totalএখানে add_to_total একটি অপিওর ফাংশন কারণ এটি গ্লোবাল ভেরিয়েবল total এর মান পরিবর্তন করে। এটি প্রতিবার একই ইনপুট দিলেও আউটপুট একই নাও হতে পারে।
পিওর ফাংশনের সুবিধা
১. সহজে টেস্টিং: পিওর ফাংশন নির্ভরশীল এবং সাইড এফেক্ট মুক্ত হওয়ায় এগুলো সহজেই আলাদা করে টেস্ট করা যায়।
২. ডিবাগিং সহজ: পিওর ফাংশন পূর্বাভাসযোগ্য, ফলে বাগ খুঁজে বের করা সহজ হয়।
৩. কনকারেন্সি ও প্যারালালিজম: পিওর ফাংশন ইমিউটেবল ডেটার উপর নির্ভর করে, ফলে প্যারালাল প্রসেসিং সহজ হয়।
পিওর ফাংশন ফাংশনাল প্রোগ্রামিংয়ের মৌলিক ধারণাগুলোর একটি যা কোডের রিডেবিলিটি, স্থায়িত্ব এবং পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে, এবং এটি প্রোগ্রামারদের জন্য একটি নিরাপদ এবং কার্যকরী পদ্ধতি প্রদান করে।
Read more