इस बात पर निर्भर करता है कि आप "कथन" और "अभिव्यक्ति" को कैसे परिभाषित करते हैं।
एक बहुत सख्त परिभाषा "चीजों के साइड इफेक्ट्स, और शायद एक वापसी मूल्य" के रूप में बयानों के बीच अंतर करेगी और अभिव्यक्ति "उन चीजों के रूप में जिनके पास रिटर्न मान हैं, लेकिन साइड इफेक्ट्स नहीं हो सकते"। इस तरह की परिभाषा के साथ, कोई भी सार्थक कार्यक्रम कम से कम एक बयान के बिना नहीं लिखा जा सकता है (जिसे एक अभिव्यक्ति का मूल्यांकन करना होगा और इसकी वापसी मूल्य का उत्पादन करना होगा) - शुद्ध अभिव्यक्ति अकेले कार्यक्रम के बाहर की दुनिया के साथ बातचीत नहीं कर सकती है। अकेले एक भाषा अभी भी पूरी तरह से शुद्ध हो सकती है (यानी, कोई कथन नहीं है), अगर अशुद्ध भाग को भाषा से बाहर और सहायक पारिस्थितिकी तंत्र में ले जाया जाता है (जो कि हास्केल करता है, हालांकि भाषा की परिभाषाएं और अभिव्यक्ति भी हैं) ।
यदि, हालांकि, आप अभिव्यक्ति में दुष्प्रभावों की अनुमति देते हैं, तो बयानों और अभिव्यक्तियों के बीच का अंतर मनमाना और बहुत कम दिलचस्प हो जाता है - बेशक आप एक प्रोग्रामिंग भाषा का आविष्कार कर सकते हैं जिसमें केवल अभिव्यक्ति होती है; अधिकांश लिस्प बोलियाँ बहुत काम करती हैं। ऐसी स्थिति में, इसके दुष्प्रभावों के लिए एक अभिव्यक्ति का मूल्यांकन करना बहुत हद तक एक कथन को निष्पादित करने के समान है, और कोई यह तर्क दे सकता है कि ऐसी भाषा में, अभिव्यक्ति और कथन एक ही बात हैं। एक बयान और एक अभिव्यक्ति के बीच का अंतर, तब केवल वाक्यात्मक है।
कई भाषाएं अभी भी इस वाक्यविन्यास अंतर को बनाती हैं, क्योंकि यह तकनीकी कारणों से नहीं, बल्कि पठनीयता के लिए उपयोगी है। कुछ को एक अभिव्यक्ति संकेत देता है कि आप इसके वापसी मूल्य में रुचि रखते हैं, कम इसके दुष्प्रभाव; इसे बयान करना पाठक को बताता है कि आप इसे साइड इफेक्ट का कारण बनाना चाहते हैं, और वापसी मूल्य दिलचस्प हो सकता है या नहीं।