ความแตกต่างระหว่าง Functional Programming และ Imperative Programming

สารบัญ:

ความแตกต่างระหว่าง Functional Programming และ Imperative Programming
ความแตกต่างระหว่าง Functional Programming และ Imperative Programming

วีดีโอ: ความแตกต่างระหว่าง Functional Programming และ Imperative Programming

วีดีโอ: ความแตกต่างระหว่าง Functional Programming และ Imperative Programming
วีดีโอ: Functional Programming คืออะไร: Functional Programming in JavaScript | EP.1 | PasaComputer 2024, ธันวาคม
Anonim

Key Difference – Functional Programming vs Imperative Programming

ข้อแตกต่างที่สำคัญระหว่างการเขียนโปรแกรมเชิงฟังก์ชันและการเขียนโปรแกรมเชิงบังคับคือการเขียนโปรแกรมเชิงฟังก์ชันจะพิจารณาการคำนวณเป็นฟังก์ชันทางคณิตศาสตร์และหลีกเลี่ยงการเปลี่ยนสถานะและข้อมูลที่ไม่แน่นอน ในขณะที่โปรแกรมบังคับจะใช้คำสั่งที่เปลี่ยนสถานะของโปรแกรม

กระบวนทัศน์การเขียนโปรแกรมให้รูปแบบการสร้างโครงสร้างและองค์ประกอบของโปรแกรมคอมพิวเตอร์ กระบวนทัศน์การเขียนโปรแกรมช่วยในการจำแนกภาษาการเขียนโปรแกรมตามคุณลักษณะ ภาษาโปรแกรมอาจมีอิทธิพลต่อกระบวนทัศน์มากขึ้นในกระบวนทัศน์เชิงวัตถุ โปรแกรมมีโครงสร้างโดยใช้วัตถุ และวัตถุจะส่งข้อความโดยใช้วิธีการ การเขียนโปรแกรมลอจิกสามารถแสดงการคำนวณในแง่ของตรรกะทางคณิตศาสตร์เท่านั้น อีกสองกระบวนทัศน์การเขียนโปรแกรมคือการเขียนโปรแกรมเชิงฟังก์ชันและการเขียนโปรแกรมที่จำเป็น การเขียนโปรแกรมเชิงฟังก์ชันช่วยให้สามารถแสดงการคำนวณเป็นการประเมินฟังก์ชันทางคณิตศาสตร์ได้ การเขียนโปรแกรมที่จำเป็นจัดเตรียมคำสั่งที่เปลี่ยนสถานะของหน่วยความจำอย่างชัดเจน บทความนี้กล่าวถึงความแตกต่างระหว่างการเขียนโปรแกรมเชิงฟังก์ชันและการเขียนโปรแกรมที่จำเป็น

Functional Programming คืออะไร

Functional Programming อิงจากคณิตศาสตร์ หลักการสำคัญที่อยู่เบื้องหลังการเขียนโปรแกรมเชิงฟังก์ชันคือการคำนวณทั้งหมดถือเป็นการรวมฟังก์ชันทางคณิตศาสตร์ที่แยกจากกัน ฟังก์ชันทางคณิตศาสตร์จะจับคู่อินพุตกับเอาต์พุต สมมติว่ามีฟังก์ชันที่เรียกว่า f(x)=xx ค่า x 1 ถูกจับคู่กับเอาต์พุต 1 ค่า x 2 ถูกจับคู่กับเอาต์พุต 4ค่า x 3 ถูกแมปกับเอาต์พุต 9 เป็นต้น

ความแตกต่างระหว่างการเขียนโปรแกรมเชิงหน้าที่และการเขียนโปรแกรมที่จำเป็น
ความแตกต่างระหว่างการเขียนโปรแกรมเชิงหน้าที่และการเขียนโปรแกรมที่จำเป็น

รูปที่ 01: ตัวอย่างภาษาโปรแกรมการทำงาน – Haskell

ในการเขียนโปรแกรมเชิงฟังก์ชัน จะพิจารณารูปแบบ Haskell ภาษาการเขียนโปรแกรมเชิงฟังก์ชัน ใช้วิธีการด้านล่างเพื่อค้นหาผลรวมของตัวเลข

ฟังก์ชันผลรวมมีค่าจำนวนเต็ม และผลลัพธ์จะเป็นจำนวนเต็มด้วย สามารถเขียนเป็นผลรวม: [int] -> int การหาผลรวมสามารถทำได้โดยทำตามรูปแบบด้านล่าง

sum[n]=n ผลรวมของตัวเลขหนึ่งตัวคือตัวเลขเอง

ถ้ามีรายการตัวเลขเขียนได้ดังนี้ครับ n แทนตัวเลขแรก และ ns แทนตัวเลขอื่นๆ

sum (n, ns)=n + ผลรวม ns.

รูปแบบด้านบนสามารถใช้เพื่อค้นหาผลรวมของตัวเลขสามตัว ได้แก่ 3, 4, 5.

3 + ผลรวม [4, 5]

3 + (4 + ผลรวม [5])

3+ 4 + 5=12

ฟังก์ชันหรือนิพจน์กล่าวว่ามีผลข้างเคียงหากแก้ไขบางสถานะนอกขอบเขตหรือมีปฏิสัมพันธ์ที่สังเกตได้กับฟังก์ชันการเรียกนอกเหนือจากค่าที่ส่งคืน การเขียนโปรแกรมเชิงฟังก์ชันช่วยลดผลข้างเคียงนี้ให้เหลือน้อยที่สุด การเปลี่ยนแปลงสถานะไม่ขึ้นอยู่กับอินพุตของฟังก์ชัน มีประโยชน์เมื่อเข้าใจพฤติกรรมของโปรแกรม ข้อเสียอย่างหนึ่งของการเขียนโปรแกรมเชิงฟังก์ชันคือการเรียนรู้การเขียนโปรแกรมเชิงฟังก์ชันนั้นยากกว่าเมื่อเปรียบเทียบกับการเขียนโปรแกรมแบบจำเป็น

โปรแกรมบังคับคืออะไร

Imperative programming เป็นกระบวนทัศน์การเขียนโปรแกรมที่ใช้คำสั่งที่เปลี่ยนสถานะของโปรแกรม เน้นที่การอธิบายวิธีการทำงานของโปรแกรม ภาษาการเขียนโปรแกรมเช่น Java, C และ Cเป็นภาษาโปรแกรมที่จำเป็นมันให้ขั้นตอนโดยขั้นตอนเกี่ยวกับสิ่งที่ต้องทำ ภาษาโปรแกรมที่จำเป็นประกอบด้วยโครงสร้าง เช่น if, else, while สำหรับลูป คลาส อ็อบเจ็กต์ และฟังก์ชัน

ความแตกต่างที่สำคัญระหว่างฟังก์ชั่นการเขียนโปรแกรมและการเขียนโปรแกรมที่จำเป็น
ความแตกต่างที่สำคัญระหว่างฟังก์ชั่นการเขียนโปรแกรมและการเขียนโปรแกรมที่จำเป็น

รูปที่ 02: ตัวอย่างภาษาการเขียนโปรแกรมที่จำเป็น – Java

ผลรวมของตัวเลขสิบตัวสามารถพบได้ในภาษาจาวาดังนี้ ในการวนซ้ำแต่ละครั้ง ค่า i จะถูกเพิ่มเข้าไปในผลรวมและกำหนดให้กับตัวแปรผลรวม ในการทำซ้ำแต่ละครั้ง ค่าผลรวมจะยังคงบวกกับผลรวมที่คำนวณไว้ก่อนหน้านี้

ผลรวม=0;

สำหรับ (int i=0; i<=10; i++) {

sum=ผลรวม + i;

}

โปรแกรมบังคับนั้นง่ายต่อการเรียนรู้ ทำความเข้าใจ และแก้ปัญหา ง่ายต่อการค้นหาสถานะของโปรแกรมเนื่องจากการใช้ตัวแปรสถานะ ข้อเสียบางประการคือทำให้โค้ดยาวขึ้นและยังย่อขนาดให้เหลือน้อยที่สุด

ความคล้ายคลึงกันระหว่าง Functional Programming และ Imperative Programming คืออะไร

ทั้ง Functional Programming และ Imperative Programming เป็นกระบวนทัศน์การเขียนโปรแกรม

ความแตกต่างระหว่าง Functional Programming และ Imperative Programming คืออะไร

การเขียนโปรแกรมเชิงฟังก์ชันกับความจำเป็น

Functional Programming เป็นกระบวนทัศน์การเขียนโปรแกรมที่ถือว่าการคำนวณเป็นการประเมินฟังก์ชันทางคณิตศาสตร์และหลีกเลี่ยงการเปลี่ยนสถานะและข้อมูลที่ไม่แน่นอน Imperative Programming เป็นกระบวนทัศน์การเขียนโปรแกรมที่ใช้คำสั่งที่เปลี่ยนสถานะของโปรแกรม
โครงสร้าง
Functional Programming มีการเรียกฟังก์ชันและฟังก์ชันลำดับที่สูงกว่า Imperative Programming ประกอบด้วย if, else, while สำหรับลูป ฟังก์ชัน คลาส และอ็อบเจกต์
ภาษาโปรแกรม
Scala, Haskell และ Lisp เป็นภาษาโปรแกรมที่ใช้งานได้จริง C, C++, Java เป็นภาษาโปรแกรมที่จำเป็น
โฟกัส
Functional Programming เน้นที่ผลลัพธ์สุดท้าย Imperative Programming เน้นที่การอธิบายวิธีการทำงานของโปรแกรม
เรียบง่าย
การเขียนโปรแกรมฟังก์ชั่นยาก การเขียนโปรแกรมที่จำเป็นง่ายกว่า

Summary – การเขียนโปรแกรมเชิงฟังก์ชัน vs การเขียนโปรแกรมเชิงบังคับ

กระบวนทัศน์การเขียนโปรแกรมให้รูปแบบการสร้างโครงสร้างและองค์ประกอบของโปรแกรมคอมพิวเตอร์ Functional Programming และ Imperative Programming เป็นสองสิ่งนี้ ความแตกต่างระหว่าง Functional Programming และ Imperative Programming คือ Functional Programming ถือว่าการคำนวณเป็นฟังก์ชันทางคณิตศาสตร์ และหลีกเลี่ยงการเปลี่ยนแปลงสถานะและข้อมูลที่ไม่แน่นอน ในขณะที่โปรแกรม Imperative Programming ใช้คำสั่งที่เปลี่ยนสถานะของโปรแกรม

แนะนำ: