এই প্রশ্নের (এবং উত্তরসমূহ) জন্য সত্যই গুরুত্বপূর্ণ একটি বিষয় হ'ল: কী কাজটি ক্রিয়াকলাপযুক্ত প্রোগ্রামিং এবং এর সর্বাধিক গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি কী। আমি এটি সম্পর্কে আমার দৃষ্টিভঙ্গি দেওয়ার চেষ্টা করব:
ফাংশনাল প্রোগ্রামিং হ'ল হোয়াইটবোর্ডে গণিত লেখার মতো। আপনি যখন হোয়াইটবোর্ডে সমীকরণ লেখেন, আপনি কার্যকর করার আদেশ সম্পর্কে ভাবেন না। (সাধারণত) কোনও রূপান্তর নেই। আপনি পরের দিন ফিরে আসেন না এবং এর দিকে তাকাবেন না, এবং আপনি যখন আবার গণনা করেন, তখন আপনি আলাদা ফলাফল পাবেন (বা আপনি কিছুটা নতুন কফি পেয়েছিলেন :))। মূলত, বোর্ডে যা রয়েছে তা এখানে রয়েছে এবং আপনি যখন জিনিস লিখতে শুরু করেছিলেন তখন উত্তরটি ইতিমধ্যে ছিল, আপনি এখনও বুঝতে পারেন নি যে এটি এখনও কী।
ফাংশনাল প্রোগ্রামিং অনেকটা এর মতো; আপনি জিনিস পরিবর্তন করেন না, আপনি কেবল সমীকরণটি মূল্যায়ন করুন (বা এই ক্ষেত্রে, "প্রোগ্রাম") এবং উত্তরটি কী তা নির্ধারণ করুন। প্রোগ্রামটি এখনও আছে, অপরিশোধিত। তথ্য সঙ্গে একই।
আমি নিম্নলিখিতটি কার্যকরী প্রোগ্রামিংয়ের সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্য হিসাবে র্যাঙ্ক করব: ক) রেফারেনশিয়াল স্বচ্ছতা - আপনি যদি একই বিবৃতিটি অন্য কোনও সময় এবং জায়গায় মূল্যায়ন করেন তবে একই পরিবর্তনশীল মানগুলির সাথে, এটি এখনও একই অর্থ হবে। খ) কোনও পার্শ্ব প্রতিক্রিয়া - আপনি যতক্ষণ হোয়াইটবোর্ডের দিকে তাকাবেন না কেন, অন্য লোকটি অন্য একটি হোয়াইটবোর্ডের দিকে তাকিয়ে থাকা সমীকরণটি ঘটনাক্রমে পরিবর্তন হবে না। গ) ফাংশনগুলিও মান। যা চারপাশে পাস এবং অন্যান্য ভেরিয়েবলের সাথে প্রয়োগ করা যেতে পারে। d) ফাংশন রচনা, আপনি h = g · f করতে পারেন এবং এইভাবে একটি নতুন ফাংশন h (..) সংজ্ঞায়িত করতে পারেন যা g (f (..)) কল করার সমতুল্য।
এই তালিকাটি আমার অগ্রাধিকারযুক্ত ক্রমে রয়েছে, সুতরাং উল্লেখযোগ্য স্বচ্ছতা সবচেয়ে গুরুত্বপূর্ণ, এর কোনও পার্শ্ব প্রতিক্রিয়া নেই।
এখন, আপনি যদি অজগরটি দিয়ে যান এবং ভাষা এবং গ্রন্থাগারগুলি এই দিকগুলিকে কতটা ভাল সমর্থন করে এবং গ্যারান্টি দেয় তা পরীক্ষা করে দেখুন - তবে আপনি নিজের প্রশ্নের উত্তর দেওয়ার পথে ভাল আছেন।