ผลต่างระหว่างรุ่นของ "การเขียนโปรแกรมเชิงฟังก์ชัน"

แปลจากภาษาอังกฤษ
(แปลเพิ่มจากภาษาอังกฤษ)
(แปลจากภาษาอังกฤษ)
 
การเขียนโปรแกรมเชิงฟังก์ชันมีรากฐานมาจาก[[แคลคูลัสแลมบ์ดา]]ซึ่งเป็น[[ระบบรูปนัย]]ที่พัฒนาในคริสต์ทศวรรษ 1930 เพื่อค้นหาความจริงเกี่ยวกับ[[ความคำนวณได้]] [[Entscheidungsproblem]] นิยามของฟังก์ชัน การประยุกต์ฟังก์ชัน และ[[การเวียนเกิด|การเรียกซ้ำ]] ภาษาเขียนโปรแกรมเชิงฟังก์ชันหลายภาษาสามารถมองว่าเป็นการใส่รายละเอียดเพิ่มจากแคลคูลัสแลมบ์ดา กระบวนทัศน์การเขียนโปรแกรมเชิงประกาศที่เป็นที่รู้จักอื่น ๆ ''[[การเขียนโปรแกรมเชิงตรรกะ]]'' มีพื้นฐานอยู่บน[[ความสัมพันธ์เชิงตรรกะ]]<ref name="hudak1989">{{cite journal | last = Hudak | first = Paul | authorlink = Paul Hudak | title = Conception, evolution, and application of functional programming languages | journal = [[Association for Computing Machinery|ACM]] Computing Surveys|volume=21|issue=3 | pages = 359–411 |date=September 1989 | url = http://www.dbnet.ece.ntua.gr/~adamo/languages/books/p359-hudak.pdf|format=PDF|doi=10.1145/72551.72554 }}</ref>
 
ในกลับกัน[[การเขียนโปรแกรมเชิงคำสั่ง]]เปลี่ยนสถานะด้วยคำสั่งในภาษาต้นทาง ตัวอย่างที่ง่ายที่สุดคือการกำหนดค่า [[การเขียนโปรแกรมเชิงคำสั่ง]]ไม่มีฟังก์ชันในความหมายแบบคณิตศาสตร์แต่มีในความหมายแบบ[[ซับรูทีน]] ซึ่งมี[[ผลข้างเคียง (วิทยาการคอมพิวเตอร์)|ผลข้างเคียง]]ที่อาจะเปลี่ยนค่าของสถานะของโปรแกรมได้ ฟังก์ชันที่ไม่คืนค่าจึงสมเหตุสมผลเพราะขาด[[ความโปร่งใสในการอ้างอิง]] ได้แก่นิพจน์เดียวกันทางภาษาสามารถให้ผลลัพธ์ที่มีค่าต่างกันได้ในเวลาที่ต่างกันขึ้นกับสถานะของโปรแกรมที่กำลังกระทำการ<ref name="hudak1989"/>
 
== อ้างอิง ==
626

การแก้ไข