Skip to main content

การเขียนโปรแกรมที่ใช้งานได้คืออะไร?

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

ตามชื่อที่แนะนำฟังก์ชั่นเป็นส่วนพื้นฐานของกระบวนทัศน์การเขียนโปรแกรมนี้ฟังก์ชั่นอาจซ้อนกันภายในฟังก์ชั่นอื่น ๆ ที่เรียกว่าฟังก์ชั่นการสั่งซื้อที่สูงขึ้นและฟังก์ชั่นลำดับที่สูงกว่าแต่ละรายการสามารถแบ่งออกเป็นฟังก์ชั่นการสร้างบล็อกที่เข้าใจและดีบักได้ง่ายตัวอย่างของฟังก์ชั่นการสั่งซื้อที่สูงขึ้นบางอย่างคือแผนที่และรังแผนที่ฟังก์ชั่นใช้ฟังก์ชัน F และรายการของตัวแปรเช่น (x, y, z) และให้ผลลัพธ์ในรายการ: แผนที่ [f, (x, y, z)] ' (f (x), f(y), f (z))Nest ใช้ฟังก์ชั่น f, ตัวแปร x และจำนวนการวนซ้ำ: Nest [f, x, 3] ' f (f (f (x)))

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

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

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

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

นักวิชาการมีแนวโน้มที่จะสนับสนุนการเขียนโปรแกรมการทำงานเนื่องจากเป็นวิธีที่ชัดเจนและเข้าใจได้.ภาษาบริสุทธิ์บางภาษาคือ Haskell และ ErlangMathematica มีความเชี่ยวชาญด้านคณิตศาสตร์เชิงสัญลักษณ์ R มีความเชี่ยวชาญในสถิติและ J มีความเชี่ยวชาญในการวิเคราะห์ทางการเงินภาษามัลติพาราดิกม์เช่น Scala และ F# รองรับทั้งการเขียนโปรแกรมที่ใช้งานได้และรูปแบบการเขียนโปรแกรมอื่น ๆ