উইকিপিডিয়া অনুসারে:
কম্পিউটার প্রোগ্রামিংয়ে কোনও ফাংশন বিশুদ্ধ হিসাবে বর্ণনা করা যেতে পারে যদি ফাংশনটি সম্পর্কে এই দুটি বিবৃতি হ'ল: ফাংশন সর্বদা একই আর্গুমেন্ট মান (গুলি) প্রদত্ত একই ফলাফলের মানটি মূল্যায়ন করে। ফাংশন ফলাফলের মান কোনও গোপন তথ্য বা অবস্থার উপর নির্ভর করতে পারে না যা প্রোগ্রামের প্রয়োগের সময় বা প্রোগ্রামের বিভিন্ন মৃত্যুদন্ডের মধ্যে পরিবর্তন হতে পারে বা এটি I / O ডিভাইসগুলির কোনও বাহ্যিক ইনপুটের উপর নির্ভর করতে পারে না। ফলাফলের মূল্যায়ন কোনও শব্দার্থভাবে পর্যবেক্ষণযোগ্য পার্শ্ব প্রতিক্রিয়া বা আউটপুট সৃষ্টি করে না, যেমন পরিবর্তনযোগ্য বস্তুর রূপান্তর বা I / O ডিভাইসে আউটপুট।
আমি ভাবছি যদি কোনও ফাংশন খাঁটি বা না হয় এমন কোনও ফাংশন লিখতে সম্ভব হয় তবে তা গুনতে হবে। জাভাস্ক্রিপ্টে কোডের উদাহরণ:
function sum(a,b) {
return a+b;
}
function say(x){
console.log(x);
}
isPure(sum) // True
isPure(say) // False
if (rand(1000000)<2) return WRONG_ANSWER
ধারাবাহিক আচরণের জন্য বহুবার ফাংশনটি অনুসন্ধান করা কোনও কাজে দেয় না। তবে, যদি আপনার ফাংশন সংজ্ঞায় অ্যাক্সেস থাকে তবে প্রমাণটি তুচ্ছ।
say
কলগুলি console.log
যা এইভাবে say
অপরিষ্কার তাও অশুদ্ধ।