เรียนรู้การเขียนโปรแกรมฟังก์ชั่น: การเข้ารหัสรูปแบบนี้จะทำให้คุณประทับใจ

การเปิดเผยข้อมูล: การสนับสนุนของคุณช่วยให้เว็บไซต์ทำงานต่อไป! เราได้รับค่าธรรมเนียมการอ้างอิงสำหรับบริการบางอย่างที่เราแนะนำในหน้านี้.


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

แนวคิดเบื้องหลังการเขียนโปรแกรมเชิงฟังก์ชันคือทุกครั้งที่มีการเรียกใช้ฟังก์ชันด้วยพารามิเตอร์เดียวกันก็ควรคืนค่าเดิม.

สิ่งที่ทำให้ฟังก์ชั่นการเขียนโปรแกรม“ ฟังก์ชั่น”?

พิจารณาฟังก์ชั่นที่คืนค่าอุณหภูมิปัจจุบัน มันถูกส่งผ่านเพียงตัวแปรเดียวที่ระบุว่าควรจะส่งคืนอุณหภูมิเป็นองศาเซลเซียสหรือฟาเรนไฮต์.

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

พารามิเตอร์ฟังก์ชั่น

ฟังก์ชั่นการเขียนโปรแกรมภาษามีฟังก์ชั่นชั้นหนึ่ง นี่หมายถึงฟังก์ชั่นสามารถใช้งานได้ราวกับว่าเป็นค่าที่ส่งคืน.

ตัวอย่างเช่นพิจารณาฟังก์ชัน double (x) ซึ่งคืนค่าสองเท่าของพารามิเตอร์อินพุต ดังนั้น double (2) จะกลับมา 4. เนื่องจากมันเป็นฟังก์ชั่นชั้นหนึ่งรหัส double (double (2)) จะเป็นเช่นเดียวกับโค้ด double (4).

เช่นเดียวกับตัวอย่างสิ่งนี้อนุญาตให้ซ้อนฟังก์ชันหนึ่งเป็นพารามิเตอร์ของอีกฟังก์ชันหนึ่งได้.

ฟังก์ชั่นการเขียนโปรแกรมภาษายังช่วยให้ฟังก์ชั่นที่จะใช้ฟังก์ชั่นเป็นตัวแปรที่ผ่าน โปรดทราบว่าสิ่งนี้เกี่ยวข้องกับฟังก์ชันที่กำลังส่งผ่านไม่ใช่เพียงผลลัพธ์ของฟังก์ชัน.

การใช้งานทั่วไป

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

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

ภาษาอื่น ๆ ต้องกังวลเกี่ยวกับสภาพการแข่งขัน – ที่มีการเรียกใช้ฟังก์ชันหนึ่งก่อนที่ตัวแปรที่ใช้จะถูกตั้งค่าเป็นค่าที่คาดหวัง.

วิธีการทำงาน

ภาษาการเขียนโปรแกรมจำนวนมากที่ไม่สามารถใช้งานได้สามารถใช้ร่วมกับวิธีการเขียนโปรแกรมที่ใช้งานได้.

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

บางภาษาได้รับการออกแบบโดยใช้วิธีการแบบผสมผสานพร้อมกับการตั้งโปรแกรมการทำงานเพื่อลบข้อเสียเหล่านี้บางส่วนหรือทั้งหมด.

ประวัติศาสตร์

แลมบ์ดาแคลคูลัสเป็นภาษาคอมพิวเตอร์เครื่องแรกและเป็นภาษาที่ใช้งานได้ มันถูกพัฒนาขึ้นครั้งแรกโดยโบสถ์อลองโซ.

น่าสนใจภาษานี้ถูกสร้างขึ้นครั้งแรกในช่วงทศวรรษที่ 1930 – ก่อนที่จะมีคอมพิวเตอร์ที่ตั้งโปรแกรมได้ ในปี 1958 John McCarthy ศาสตราจารย์แห่งสถาบันเทคโนโลยีแมสซาชูเซตส์ (MIT) ได้สร้าง LISP ซึ่งจำลองตามแลมบ์ดาแคลคูลัสและเป็นหนึ่งในภาษาที่ใช้งานได้สำคัญที่สุด.

ยังมี LISP หลายเวอร์ชันที่ใช้อยู่ในปัจจุบัน – บางฟังก์ชันใช้งานได้ดีกว่า LISP อื่น ๆ.

ภาษาที่รองรับการเขียนโปรแกรมใช้งานได้

  • D ได้รับการออกแบบหลังจาก C ++ เพื่อรับประโยชน์ทั้งหมดในขณะที่ลบจุดอ่อนที่รับรู้ได้ของการใช้งานร่วมกับ C ย้อนหลังได้.

  • Elixir ได้มาและตั้งอยู่บน Erlang โดยใช้ความสามารถในการสร้าง h

    ighly
    แอพพลิเคชั่นพร้อมกันในขณะที่ทำให้ภาษาง่ายต่อการเขียนและบำรุงรักษา.

  • Erlang สามารถปรับขนาดได้อย่างมากและพร้อมกันจึงเหมาะสำหรับการสื่อสารโทรคมนาคมและแอพพลิเคชั่นอื่น ๆ ที่ได้รับข้อมูลจำนวนมากตามลำดับที่คาดการณ์ไม่ได้.

  • F # เป็นภาษาแบบหลายกระบวนทัศน์โอเพนซอร์ซที่มักใช้ใน

    .สุทธิ
    กรอบ. โดยทั่วไปจะใช้สำหรับการพัฒนาซอฟต์แวร์วิเคราะห์อย่างรวดเร็ว.

  • Haskell เป็นภาษาที่ใช้งานได้จริงซึ่งใช้แลมบ์ดาแคลคูลัส.

  • ML ใช้ในแอปพลิเคชันทางคณิตศาสตร์วิทยาศาสตร์การเงินการวิเคราะห์และอื่น ๆ หนึ่งในจุดแข็งของมันคือการสร้างซอฟต์แวร์สำหรับจัดการโปรแกรมอื่น ๆ.

  • OCaml หรือ Objective Caml เป็นภาษาแบบโอเพ่นซอร์สฟรีซึ่งอ้างอิงจาก Caml มันมีแนวโน้มที่จะสร้างโปรแกรมที่มีน้ำหนักเบามากซึ่งช่วยให้พวกเขาโหลดและรันได้เร็วกว่าที่สร้างขึ้นในภาษาอื่น ๆ.

  • Scala ได้รับการออกแบบมาให้ใช้งานร่วมกับ Java และภาษาเชิงวัตถุอื่น ๆ ได้อย่างง่ายดาย Scala ใช้ประโยชน์จากฟังก์ชั่นการเขียนโปรแกรมช่วยให้สามารถใช้งานได้ในแอพพลิเคชั่นแบบกระจายและแบบพร้อมกัน.

  • Scheme ขึ้นอยู่กับไวยากรณ์ของ LISP และโครงสร้างของ ALGOL เนื่องจากความเรียบง่ายของมัน Scheme จึงถูกใช้เป็นการแนะนำการออกแบบโปรแกรมในหลักสูตรวิทยาการคอมพิวเตอร์จำนวนมากเพื่อแสดงพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์บางส่วน.

  • สวิฟท์ได้รับการออกแบบโดยมีเป้าหมายที่จะยอมรับความผิดพลาดได้อย่างรวดเร็วเพื่อพัฒนาและแสดงออก.

ทรัพยากร

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

สอน

  • คำแนะนำเชิงปฏิบัติเบื้องต้นเกี่ยวกับการเขียนโปรแกรมเชิงฟังก์ชั่น: การอภิปรายของ Mary Rose Cook เกี่ยวกับการใช้เทคนิคการเขียนโปรแกรมเชิงหน้าที่ด้วยภาษาที่จำเป็น.

  • ฟังก์ชั่นพื้นฐานการเขียนโปรแกรม: การอภิปรายเชิงทฤษฎีที่ดีของการเขียนโปรแกรมการทำงาน.

  • อย่ากลัวการเขียนโปรแกรมฟังก์ชั่น: การเขียนโปรแกรมการทำงานเป็น “hipster mustachioed ของกระบวนทัศน์การเขียนโปรแกรม”? ค้นหาที่นี่.

  • รู้เบื้องต้นเกี่ยวกับฟังก์ชั่นการเขียนโปรแกรมในสวิฟท์: การแนะนำโดยละเอียดเกี่ยวกับการเขียนโปรแกรมฟังก์ชั่นโดยใช้ Swift.

  • ทำไมบทช่วยสอนการเขียนโปรแกรมเชิงฟังก์ชั่นใช้งานได้เหรอ? – การสนทนาใน Exchange Exchange ที่คุ้มค่ากับการอ่าน.

หนังสือ

  • บทนำเกี่ยวกับการเขียนโปรแกรมฟังก์ชั่นผ่านแลมบ์ดาแคลคูลัส (2011) โดยเกร็กมิเชลสัน: บทนำที่เริ่มต้นตั้งแต่ต้น.

  • การคิดเชิงหน้าที่: กระบวนทัศน์เหนือไวยากรณ์ (2014) โดย Neal Ford: หนังสือขั้นสูงเกี่ยวกับพื้นฐานการเขียนโปรแกรมเชิงฟังก์ชัน.

  • โลกแห่งเวทมนตร์ของการเขียนโปรแกรมเชิงฟังก์ชั่น: ส่วนที่ 1: ความคิดเชิงหน้าที่ (2014) โดย K Anand Kumar: ebook สั้น ๆ เกี่ยวกับพื้นฐานของการตั้งโปรแกรมการทำงาน.

  • Becoming Functional (2014) โดย Joshua Backfield: บทนำเกี่ยวกับการเขียนโปรแกรมเชิงหน้าที่สำหรับผู้ที่คุ้นเคยกับการโปรแกรมเชิงวัตถุและเชิงวัตถุ.

สรุป

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

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

การอ่านและทรัพยากรเพิ่มเติม

เรามีคำแนะนำเพิ่มเติมบทแนะนำและอินโฟกราฟิกที่เกี่ยวข้องกับการเข้ารหัสและการพัฒนา:

  • การเขียนโปรแกรม F #: ค้นหาข้อมูลเกี่ยวกับการเขียนโปรแกรมการทำงานใน. NET Framework.

  • คำแนะนำและทรัพยากรของ Erlang Programming: ภาษาที่ใช้งานได้ในตอนต้นซึ่งใช้สำหรับการสร้างโค้ดแบบขนาน.

  • Swift Introduction and Resources: นี่เป็นหนึ่งในภาษา C-like ใหม่ล่าสุด อนาคตของการเขียนโปรแกรม? ค้นหาที่นี่!

คุณควรเรียนรู้รหัสใด?

สับสนเกี่ยวกับภาษาการเขียนโปรแกรมใดที่คุณควรเรียนรู้ที่จะใช้รหัส? ตรวจสอบอินโฟกราฟิกของเราคุณควรเรียนรู้รหัสใด?

ไม่เพียง แต่พูดถึงแง่มุมต่าง ๆ ของภาษาเท่านั้น แต่ยังตอบคำถามสำคัญเช่น“ ฉันต้องใช้เงินเท่าไหร่ในการเขียนโปรแกรม Java เพื่อการใช้ชีวิต?”

คุณควรเรียนรู้รหัสใด
คุณควรเรียนรู้รหัสใด?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me