ফাংশনাল প্রোগ্রামিং এর অন্যতম ধারনা হ'ল খাঁটি ফাংশন ব্যবহার। একটি খাঁটি ফাংশনটি এমনটি যা পার্শ্ব-প্রতিক্রিয়া মুক্ত এবং স্বতঃস্ফূর্তভাবে স্বচ্ছ।
গেটারগুলি উল্লেখযোগ্যভাবে স্বচ্ছ হয় না - গেটারের কলগুলির মধ্যে যদি কোনও সেটারকে কল করা হয়, তবে গেটারের প্যারামিটারগুলি না থাকলেও গেটারের রিটার্নের মান পরিবর্তিত হয় (সাধারণত কোনও পরামিতি থাকে না)
সেটারগুলি পার্শ্ব-প্রতিক্রিয়া তৈরি করে - একটি সেটারকে কল করা সাধারণত এমন একটি মানকে ম্যানিপুলেট করে যা তার ফেরতের মান নয় (বাস্তবে, traditionতিহ্যগতভাবে কোনও সেটার কিছুই দেয় না)
আমি স্কেলায় জানি আমরা কেবল সত্যটি গ্রহণ করি যে আমরা দুটি দৃষ্টান্ত (কার্যকরী এবং বস্তু ভিত্তিক) একসাথে জাল করছি এবং জাটার মতো ভাষাতে যেমন গিটার / সেটার ব্যবহার করি।
হাস্কেলের মতো ভাষায় (যার সাথে আমি সাবলীল নই, তবে আমাকে "খাঁটি" কার্যকরী ভাষার কাছে সত্যবাদী বলে ধরা হয়েছে) আমি কেবল কৌতূহলী, আপনি কীভাবে বস্তুগুলির বৈশিষ্ট্যগুলি মডেল করবেন যেমন গেটারস রেফারেন্টালি স্বচ্ছ এবং সেটারস পার্শ্ব প্রতিক্রিয়া বিনামূল্যে?
সমাধানটি কি সেটারের ফেরতের মান হিসাবে সেটারটি যে বস্তুটির উপর নিযুক্ত হয়েছিল তার একটি অনুলিপি ফেরত পাঠানো হবে এবং এই অনুলিপিতে সম্পত্তি মানটির পরিবর্তন রয়েছে?