আপনার অ্যাক্সেস থাকা স্মৃতি যদি পরিবর্তন করতে পারে তবে এটি অবশ্যই একটি পার্শ্ব প্রতিক্রিয়া।
উদাহরণস্বরূপ, হাস্কেলে, একটি পরিবর্তনীয় অ্যারে অ্যাক্সেস করতে ফাংশনটির IOArray
টাইপ রয়েছে
Ix i => IOArray i e -> i -> IO e
(আমাদের উদ্দেশ্যে সামান্য সরলীকৃত)। অপরিবর্তনযোগ্য অ্যারে অ্যাক্সেস করার সময় টাইপ থাকে
Ix i => Array i e -> i -> e
প্রথম সংস্করণটি এমন কোনও প্রকারের রিটার্ন দেয় IO e
যার অর্থ এটির I / O পার্শ্ব প্রতিক্রিয়া রয়েছে। দ্বিতীয় সংস্করণটি e
কোনও পার্শ্ব প্রতিক্রিয়া ছাড়াই কেবল টাইপের একটি উপাদান দেয়।
কোনও ফাইল অ্যাক্সেস করার ক্ষেত্রে, আপনি প্রোগ্রামের কোনও রান চলাকালীন ফাইলটি কখনও পরিবর্তিত হবে কিনা তা সংকলনের সময় আপনি সহজেই জানতে পারবেন না। অতএব, আপনাকে এটি সর্বদা সম্ভাব্য পার্শ্ব প্রতিক্রিয়াগুলির সাথে অপারেশন হিসাবে বিবেচনা করতে হবে।