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