JavaScriptFunctions & Scope
Q10. What is a pure function? Give an example.
পিওর ফাংশনের দুটো শর্ত, বাস্তব কোডে কেন দরকার — উদাহরণসহ।
Pure function হলো এমন ফাংশন যার দুটো বৈশিষ্ট্য — (১) একই ইনপুট দিলে সবসময় একই আউটপুট দেয়, আর (২) বাইরের কোনো কিছু পরিবর্তন বা পার্শ্বপ্রতিক্রিয়া (side effect) করে না।
pure বনাম impurejavascript
javascript
// pure — সবকিছু ইনপুট থেকে হিসাব হয়
function add(a, b) {
return a + b;
}
add(2, 3); // 5
add(2, 3); // আবার 5 — প্রতিবার একই
// impure — বাইরের ভেরিয়েবল বদলে দেয়
let total = 0;
function addToTotal(n) {
total = total + n; // side effect
return total;
}পিওর ফাংশনে কোনো console.log, ফাইল পড়া, নেটওয়ার্ক কল বা বাইরের ভেরিয়েবল পরিবর্তন থাকে না — ফলে একই ইনপুটে ফল একই থাকে।
পার্শ্বপ্রতিক্রিয়া সরানোjavascript
javascript
// impure — প্রতিবার ফল বদলায়
let tax = 0.05;
function withTax(price) {
return price * (1 + tax);
}
// pure — tax বাইরে থেকে ইনপুট হিসেবে আসে
function pureWithTax(price, rate) {
return price * (1 + rate);
}| বিষয় | Pure function | Impure function |
|---|---|---|
| একই ইনপুটে আউটপুট | সবসময় একই | বদলাতে পারে |
| বাইরের অবস্থা বদলায় | না | হ্যাঁ |
console.log বা I/O | নেই | থাকতে পারে |
| পরীক্ষা করা | সহজ | কঠিন |
| cache করা | সহজ | ভুল হয় |
কেন দরকার
পিওর ফাংশনে ভুল হলে সহজে খুঁজে বের করা যায়, test লেখা সহজ, আর memoization বা caching দিয়ে ফল আগে থেকে গণনা করে রাখা যায়। তাই হিসাবের যেকোনো লজিক যত ছোট, পিওর রাখার চেষ্টা করুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।