Eriştiğiniz bellek değişebiliyorsa, bu gerçekten de bir yan etkidir.
Örneğin, Haskell'de, değiştirilebilir bir diziye ( IOArray
) erişim işlevi türüne sahiptir
Ix i => IOArray i e -> i -> IO e
(bizim amaçlarımız için biraz basitleştirilmiş). Değişmez bir diziye erişirken,
Ix i => Array i e -> i -> e
İlk sürüm IO e
, G / Ç yan etkileri olduğu anlamına gelen türden bir şey döndürür . İkinci sürüm e
, herhangi bir yan etkisi olmayan bir tür öğeyi döndürür .
Bir dosyaya erişilmesi durumunda, derleme zamanında dosyanın programın çalışması sırasında değişip değişmeyeceğini bilemezsiniz. Bu nedenle, her zaman potansiyel yan etkileri olan bir işlem olarak ele almalısınız.