Programlamada bir yan etki, bir işlevi yürütmek, işlevi katı bir şekilde yerine getirmek ve standart çıktıyı almak dışında başka bir şeyle sonuçlandığında ortaya çıkar. Bu, bir fonksiyonda hesaplanırken değişkenin değerinin değiştiği anlamına gelebilir. Bildirimsel programlama dillerinin nadiren yan etkileri vardır; kod basittir ve bir işlevi tamamlamak için gereken her adımı detaylandırmaz. Kullandıkları nesneler değişmez ise, bu durum bildirimsel programlamada tipik olarak böyledir, işlevler programın başka bir bölümünde yan etkileri olmadan her çalıştırıldığında aynı şekilde davranacaktır.
Bir yan etki, yalnızca göründüğü yerel alanı değil, genellikle programın durumunu değiştirir. Bu, belirli bir işlevin yerel alanı dışındaki değişkenlerin değerlerini değiştirdiğinde bazen "genel" değişiklik olarak bilinir. Elbette, bir uygulamanın veya bilgisayar programının çalışabilmesi için yan etkiler yoluyla değişikliğe izin vermesi gerekir: bazen çıktıların değişmesi gerekir. Veri değiştikçe ve değiştikçe veritabanlarının birçok yan etkisi olacaktır. Ancak tamamen işlevsel programlamanın da faydaları vardır.
Yan etkileri ortadan kaldıran işlevsel programlama, geliştiricilerin okuması ve analiz etmesi için daha kolaydır. Saf işlevler (yan etkisi olmayan), her tekrar edişlerinde hiçbir değişiklik veya yan etki olmaksızın aynı hesaplamayı yapar. Bir programda yan etkilerden kaçınmak, onu daha okunaklı ve güvenilir kılar.