Skip to main content

ฟังก์ชั่นชั้นหนึ่งคืออะไร?

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

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

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