यदि आपके द्वारा उपयोग की जाने वाली मेमोरी बदल सकती है, तो यह वास्तव में एक दुष्प्रभाव है।
उदाहरण के लिए, हास्केल में, एक उत्परिवर्तित सरणी ( IOArray
) का उपयोग करने के लिए फ़ंक्शन का प्रकार है
Ix i => IOArray i e -> i -> IO e
(हमारे उद्देश्यों के लिए थोड़ा सरलीकृत)। एक अपरिवर्तनीय सरणी तक पहुँचने के दौरान टाइप होता है
Ix i => Array i e -> i -> e
पहला संस्करण कुछ प्रकार देता है IO e
जिसका अर्थ है कि इसमें I / O दुष्प्रभाव हैं। दूसरा संस्करण e
बिना किसी दुष्प्रभाव के बस एक प्रकार का तत्व देता है ।
किसी फ़ाइल तक पहुँचने के मामले में, आप बस संकलन समय पर नहीं जान सकते हैं कि प्रोग्राम के चलने के दौरान फ़ाइल कभी बदल जाएगी या नहीं। इसलिए, आपको इसे हमेशा संभावित दुष्प्रभावों के साथ एक ऑपरेशन के रूप में व्यवहार करना होगा।