Functional programming is a programming paradigm where computation is treated as the evaluation of mathematical functions and mutable data is avoided. It is different from imperative programming, which relies on changing the state of a program and modifying data. Functional languages like Haskell, Lisp, Scheme, and ML promote immutability, no side-effects, first-class and higher-order functions, recursion and declarative approach. Meanwhile imperative languages like C, C++, Java, Python focus on giving a sequence of statements that change a program state and how the code should execute step-by-step.
การเขียนโปรแกรมเชิงฟังก์ชันเป็นกระบวนทัศน์การเขียนโปรแกรมที่การคำนวณถือเป็นการประเมินฟังก์ชันทางคณิตศาสตร์และหลีกเลี่ยงข้อมูลที่ไม่แน่นอน มันแตกต่างจากการเขียนโปรแกรมที่จำเป็นซึ่งอาศัยการเปลี่ยนแปลงสถานะของโปรแกรมและการแก้ไขข้อมูล ภาษาเชิงฟังก์ชัน เช่น Haskell, Lisp, Scheme และ ML ส่งเสริมความไม่เปลี่ยนรูป ไม่มีผลข้างเคียง ฟังก์ชันระดับเฟิร์สคลาสและลำดับที่สูงกว่า วิธีการเรียกซ้ำและการประกาศ ในขณะเดียวกันภาษาที่จำเป็นเช่น C, C++, Java, Python มุ่งเน้นไปที่การให้ลำดับของคำสั่งที่เปลี่ยนสถานะของโปรแกรมและวิธีที่โค้ดควรดำเนินการทีละขั้นตอน
spam