আমাকে স্বীকার করতে হবে যে ফাংশনাল প্রোগ্রামিং সম্পর্কে আমি বেশি কিছু জানি না। আমি এখান থেকে সেখান থেকে এখানে পড়েছি এবং তাই জানতে পেরেছি যে ফাংশনাল প্রোগ্রামিংয়ে একটি ফাংশন একই আউটপুট ফেরত দেয়, একই ইনপুটটির জন্য, ফাংশনটি যতবার বলা হোক না কেন। এটি হুবহু একটি গাণিতিক ফাংশনের মতো যা একই ইনপুট প্যারামিটারগুলির একই মানের জন্য মূল্যায়ন করে যা ফাংশন প্রকাশের সাথে জড়িত।
উদাহরণস্বরূপ, এটি বিবেচনা করুন:
f(x,y) = x*x + y; // It is a mathematical function
আপনি যতবার ব্যবহার করুন না কেন f(10,4)
, এর মান সর্বদা থাকবে 104
। যেমন আপনি যেখানেই লিখেছেন না কেন f(10,4)
, 104
সম্পূর্ণ অভিব্যক্তির মান পরিবর্তন না করে আপনি এটিকে প্রতিস্থাপন করতে পারেন । এই সম্পত্তি একটি অভিব্যক্তি রেফারেন্সিয়াল স্বচ্ছতা হিসাবে উল্লেখ করা হয় ।
উইকিপিডিয়া যেমন বলেছে ( লিঙ্ক ),
বিপরীতক্রমে, ফাংশনাল কোডে, একটি ফাংশনের আউটপুট মান কেবলমাত্র যুক্তিগুলির উপর নির্ভর করে যা ফাংশনে ইনপুট হয়, সুতরাং একটি আর্গুমেন্ট x এর জন্য একই মানের সাথে দুবার একটি ফাংশন কল করা একই ফলাফল f (x) উভয় বার উত্পাদন করে।
একটি সময় ফাংশন (যা বর্তমান সময়কে ফিরিয়ে দেয় ) ফাংশনাল প্রোগ্রামিংয়ে থাকতে পারে?
যদি হ্যাঁ, তবে এটি কীভাবে থাকতে পারে? এটি কার্যকরী প্রোগ্রামিংয়ের নীতি লঙ্ঘন করে না? এটি বিশেষত রেফারেনশিয়াল স্বচ্ছতা লঙ্ঘন করে যা কার্যকরী প্রোগ্রামিংয়ের অন্যতম সম্পত্তি (যদি আমি এটি সঠিকভাবে বুঝতে পারি)।
বা যদি না হয়, তবে কার্যক্ষম প্রোগ্রামিংয়ে বর্তমান সময়ের কীভাবে কেউ জানতে পারবেন?