نمط برمجي يعتمد على الدوال النقية وتجنب تغيير الحالة.
يسهل الاختبار ويقلل الأخطاء الجانبية (مثل Haskell, Clojure).