บทความนี้ต้องการการจัดหน้า หรือ ให้ คุณสามารถปรับปรุงแก้ไขบทความนี้ได้ และนำป้ายออก พิจารณาใช้เพื่อชี้ชัดข้อบกพร่อง |
ในวิทยาการคอมพิวเตอร์ การเขียนโปรแกรมเชิงฟังก์ชันเป็นกระบวนทัศน์การเขียนโปรแกรมที่รูปแบบการสร้างโครงสร้างและส่วนประกอบของโปรแกรมคอมพิวเตอร์ซึ่งปฏิบัติต่อการคำนวณว่าเป็นการประเมินผลฟังก์ชันทางคณิตศาสตร์และหลีกเลี่ยงการเปลี่ยนแปลงสถานะและข้อมูล โดยเป็นกระบวนทัศน์การเขียนโปรแกรมเชิงประกาศซึ่งหมายความหรือการประกาศแทนข้อความสั่ง ในโปรแกรมเชิงฟังก์ชัน ค่าผลลัพธ์ของฟังก์ชันขึ้นอยู่กับ[ อาร์กิวเมนต์]ที่นำเข้าสู่ฟังก์ชันเท่านั้น ดังนั้นการเรียกฟังก์ชัน f สองครั้งด้วยค่าอาร์กิวเมนต์ x เดียวกันจะให้ค่าผลลัพธ์ f(x) เท่ากันทุกครั้ง การกำจัดผลข้างเคียง ได้แก่ การเปลี่ยนแปลงสถานะที่ไม่ขึ้นกับสิ่งที่นำเข้าฟังก์ชัน สามารถทำให้ง่ายขึ้นที่จะทำความเข้าใจและพยากรณ์พฤฒิกรรมของโปรแกรมซึ่งเป็นหนึ่งในแรงจูงใจของการพัฒนาของการเขียนโปรแกรมเชิงฟังก์ชัน
การเขียนโปรแกรมเชิงฟังก์ชันมีรากฐานมาจากแคลคูลัสแลมบ์ดาซึ่งเป็นที่พัฒนาในคริสต์ทศวรรษ 1930 เพื่อค้น นิยามของฟังก์ชัน การประยุกต์ฟังก์ชัน และการเรียกซ้ำ ภาษาการใส่รายละเอียดเพิ่มจากแคลคูลัสแลมบ์ดา กระบวนทัศน์การเขียนโปรแกรมเชิงประกาศที่เป็นที่รู้จักอื่น ๆ การเขียนโปรแกรมเชิงตรรกะ มีพื้นฐานอยู่บน
ในกลับโปรแกรมเชิงคำสั่งเปลี่ยนสถานะด้วยคำสั่งในภาษาต้นทาง ตัวอย่างที่ง่ายที่สุดคือการกำหนดค่า การเขียนโปรแกรมเชิงคำสั่งไม่มีฟังก์ชันในความหมายแบบคณิตศาสตร์แต่มีในความหมายแบบซับรูทีน ซึ่งมีที่อาจะเปลี่ยนค่าของสถานะของโปรแกรมได้ ฟังก์ชันที่ไม่คืนค่าจึงสมเหตุสมผลเพราะขาด ได้แก่นิพจน์เดียวกันทางภาษาสามารถให้ผลลัพธ์ที่มีค่าต่างกันได้ในเวลาที่ต่างกันขึ้นกับสถานะของโปรแกรมที่กำลังกระทำการ
ภาษาโปรแกรมเชิงฟังก์ชันโดยเฉพาะ เช่น ถูกในความสำคัญในมากกว่าในการพัฒนาซอฟต์แวร์เชิงพาณิชย์ อย่างไรก็ตามภาษาโปรแกรมที่มีชื่อเสียงซึ่งสนับสนุนการเขียนโปรแกรมเชิงฟังก์ชัน เช่น (หรือ ) ภาษาเออร์แลง และภาษาเอฟชาร์ป ใช้ในโปรแกรมประยุกต์เชิงอุตสาหกรรมและเชิงพาณิชย์โดยองค์กรอย่างกว้างขวาง การเขียนโปรแกรมเชิงฟังก์ชันยังได้รับการรองรับในบางภาษา เช่น ภาษาอาร์ (สถิติ) และ (การวิเคราะห์ทางการคลัง) / (เอกซ์เอ็มแอล) และ ภาษาเชิงประกาศเฉพาะทางที่ใช้งานอย่างกว้างขวางเช่น ภาษาสอบถามเชิงโครงสร้าง และ / ใช้บางส่วนประกอบของการเขียนโปรแกรมเชิงฟังก์ชันโดยเฉพาะใน eschewing .
การเขียนโปรแกรมเชิงฟังก์ชันสามารถทำได้ในภาษาที่ไม่ได้ออกมาเฉพาะสำหรับการเขียนโปรแกรมเชิงฟังก์ชัน ตัวอย่างเช่น ภาษาเพิร์ลซึ่งเป็นภาษาโปรแกรมเชิงคำสั่งมีบทหนึ่งของหนังสือที่อธิบายว่าประยุกต์แนวคิดการเขียนโปรแกรมเชิงฟังก์ชันอย่างไร นี้ยังเป็นจริงสำหรับภาษาพีเอชพี, ภาษาจาวา 8 และภาษาซีชาร์ป 3.0 ก็เสนอความสามารถการเขียนโปรแกรมเชิงฟังก์ชันเช่นกัน กรณีที่น่าสนใจคือ – มักเขียนในเชิงฟังก์ชัน แต่ก็มีการแสดงตนของผลข้างเคียงและสถานะที่เปลี่ยนแปลงได้ ซึ่งทำให้จัดอยู่ในบริเวณสีเทาระหว่างภาษาเชิงคำสั่งและเชิงฟังก์ชัน
อ้างอิง
- "Declaration vs. expression style - HaskellWiki".
- "Declaration vs. expression style - HaskellWiki".
- (September 1989). (PDF). ACM Computing Surveys. 21 (3): 359–411. doi:10.1145/72551.72554. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2016-01-31. สืบค้นเมื่อ 2017-01-01.
- Clinger, Will (1987). "MultiTasking and MacScheme". MacTech. 3 (12). สืบค้นเมื่อ 2008-08-28.
- Hartheimer, Anne (1987). . MacTech. 3 (1). คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2011-06-29. สืบค้นเมื่อ 2008-08-28.
- Kidd, Eric. . CUFP 2007. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-12-21. สืบค้นเมื่อ 2009-08-26.
- Cleis, Richard. . CUFP 2006. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-05-27. สืบค้นเมื่อ 2009-08-26.
- "The useR! 2006 conference schedule includes papers on the commercial use of R". R-project.org. 2006-06-08. สืบค้นเมื่อ 2011-06-20.
- (1998). Programming with Data: A Guide to the S Language. Springer Verlag. pp. 67–70. ISBN .
- "Wolfram Language Guide: Functional Programming". 2015. สืบค้นเมื่อ 2015-08-24.
- (PDF). คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2012-12-15. สืบค้นเมื่อ 2011-08-08.
- "Who uses Erlang for product development?". Frequently asked questions about Erlang. สืบค้นเมื่อ 2007-08-05.
- Armstrong, Joe (June 2007). A history of Erlang. Third ACM SIGPLAN Conference on History of Programming Languages. San Diego, California. สืบค้นเมื่อ 2009-08-29.
- Larson, Jim (March 2009). "Erlang for concurrent programming". Communications of the ACM. 52 (3): 48. doi:10.1145/1467247.1467263.
- Minsky, Yaron; Weeks, Stephen (July 2008). "Caml Trading — experiences with functional programming on Wall Street". Journal of Functional Programming. Cambridge University Press. 18 (4): 553–564. doi:10.1017/S095679680800676X. สืบค้นเมื่อ 2008-08-27.
- Leroy, Xavier. (PDF). CUFP 2007. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2011-10-08. สืบค้นเมื่อ 2009-08-26.
- "Haskell in industry". Haskell Wiki. สืบค้นเมื่อ 2009-08-26.
Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and lawnmower manufacturers.
- ; Hughes, J.; Jones, S. P.; Wadler, P. (June 2007). A history of Haskell: being lazy with class. Third ACM SIGPLAN Conference on History of Programming Languages. San Diego, California. doi:10.1145/1238844.1238856. สืบค้นเมื่อ 2013-09-26.
- Mansell, Howard (2008). . CUFP 2008. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2015-07-08. สืบค้นเมื่อ 2009-08-29.
- Peake, Alex (2009). . CUFP 2009. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2009-10-17. สืบค้นเมื่อ 2009-08-29.
- Department of Applied Math, University of Colorado. . คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2007-11-13. สืบค้นเมื่อ 2006-08-28.
- Dimitre Novatchev. "The Functional Programming Language XSLT — A proof through examples". TopXML. สืบค้นเมื่อ May 27, 2006.
- David Mertz. "XML Programming Paradigms (part four): Functional Programming approached to XML processing". IBM developerWorks. สืบค้นเมื่อ May 27, 2006.
- and (1974). "SEQUEL: A structured English query language". Proceedings of the 1974 ACM SIGFIDET: 249–264.
- (2005). . . ISBN .
- Holywell, Simon (2014). Functional Programming in PHP. php[architect]. ISBN .
- . Scala Wiki. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-06-19. สืบค้นเมื่อ 2012-02-21.
Effective Scala.
<ref>
ด้วยชื่อ "racket-video-games" ที่นิยามในกลุ่ม <references>
ไม่มีเนื้อหา wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamnitxngkarkarcdhna cdhmwdhmu islingkphayin hruxekbkwadenuxha ihmikhunphaphdikhun khunsamarthprbprungaekikhbthkhwamniid aelanapayxxk phicarnaichpaykhxkhwamxunephuxchichdkhxbkphrxng inwithyakarkhxmphiwetxr karekhiynopraekrmechingfngkchnepnkrabwnthsnkarekhiynopraekrmthirupaebbkarsrangokhrngsrangaelaswnprakxbkhxngopraekrmkhxmphiwetxrsungptibtitxkarkhanwnwaepnkarpraeminphlfngkchnthangkhnitsastraelahlikeliyngkarepliynaeplngsthanaaelakhxmul odyepnkrabwnthsnkarekhiynopraekrmechingprakassunghmaykhwamhruxkarprakasaethnkhxkhwamsng inopraekrmechingfngkchn khaphllphthkhxngfngkchnkhunxyukb xarkiwemnt thinaekhasufngkchnethann dngnnkareriykfngkchn f sxngkhrngdwykhaxarkiwemnt x ediywkncaihkhaphllphth f x ethaknthukkhrng karkacdphlkhangekhiyng idaek karepliynaeplngsthanathiimkhunkbsingthinaekhafngkchn samarththaihngaykhunthicathakhwamekhaicaelaphyakrnphvthikrrmkhxngopraekrmsungepnhnunginaerngcungickhxngkarphthnakhxngkarekhiynopraekrmechingfngkchn karekhiynopraekrmechingfngkchnmirakthanmacakaekhlkhulsaelmbdasungepnthiphthnainkhristthswrrs 1930 ephuxkhn niyamkhxngfngkchn karprayuktfngkchn aelakareriyksa phasakarisraylaexiydephimcakaekhlkhulsaelmbda krabwnthsnkarekhiynopraekrmechingprakasthiepnthiruckxun karekhiynopraekrmechingtrrka miphunthanxyubn inklbopraekrmechingkhasngepliynsthanadwykhasnginphasatnthang twxyangthingaythisudkhuxkarkahndkha karekhiynopraekrmechingkhasngimmifngkchninkhwamhmayaebbkhnitsastraetmiinkhwamhmayaebbsbruthin sungmithixacaepliynkhakhxngsthanakhxngopraekrmid fngkchnthiimkhunkhacungsmehtusmphlephraakhad idaekniphcnediywknthangphasasamarthihphllphththimikhatangknidinewlathitangknkhunkbsthanakhxngopraekrmthikalngkrathakar phasaopraekrmechingfngkchnodyechphaa echn thukinkhwamsakhyinmakkwainkarphthnasxftaewrechingphanichy xyangirktamphasaopraekrmthimichuxesiyngsungsnbsnunkarekhiynopraekrmechingfngkchn echn hrux phasaexxraelng aelaphasaexfcharp ichinopraekrmprayuktechingxutsahkrrmaelaechingphanichyodyxngkhkrxyangkwangkhwang karekhiynopraekrmechingfngkchnyngidrbkarrxngrbinbangphasa echn phasaxar sthiti aela karwiekhraahthangkarkhlng exksexmaexl aela phasaechingprakasechphaathangthiichnganxyangkwangkhwangechn phasasxbthamechingokhrngsrang aela ichbangswnprakxbkhxngkarekhiynopraekrmechingfngkchnodyechphaain eschewing karekhiynopraekrmechingfngkchnsamarththaidinphasathiimidxxkmaechphaasahrbkarekhiynopraekrmechingfngkchn twxyangechn phasaephirlsungepnphasaopraekrmechingkhasngmibthhnungkhxnghnngsuxthixthibaywaprayuktaenwkhidkarekhiynopraekrmechingfngkchnxyangir niyngepncringsahrbphasaphiexchphiC 11 phasacawa 8 aelaphasasicharp 3 0 kesnxkhwamsamarthkarekhiynopraekrmechingfngkchnechnkn krnithinasnickhux mkekhiyninechingfngkchn aetkmikaraesdngtnkhxngphlkhangekhiyngaelasthanathiepliynaeplngid sungthaihcdxyuinbriewnsietharahwangphasaechingkhasngaelaechingfngkchnxangxing Declaration vs expression style HaskellWiki Declaration vs expression style HaskellWiki September 1989 PDF ACM Computing Surveys 21 3 359 411 doi 10 1145 72551 72554 khlngkhxmulekaekbcakaehlngedim PDF emux 2016 01 31 subkhnemux 2017 01 01 Clinger Will 1987 MultiTasking and MacScheme MacTech 3 12 subkhnemux 2008 08 28 Hartheimer Anne 1987 MacTech 3 1 khlngkhxmulekaekbcakaehlngedimemux 2011 06 29 subkhnemux 2008 08 28 Kidd Eric CUFP 2007 khlngkhxmulekaekbcakaehlngedimemux 2010 12 21 subkhnemux 2009 08 26 Cleis Richard CUFP 2006 khlngkhxmulekaekbcakaehlngedimemux 2010 05 27 subkhnemux 2009 08 26 The useR 2006 conference schedule includes papers on the commercial use of R R project org 2006 06 08 subkhnemux 2011 06 20 1998 Programming with Data A Guide to the S Language Springer Verlag pp 67 70 ISBN 978 0 387 98503 9 Wolfram Language Guide Functional Programming 2015 subkhnemux 2015 08 24 PDF khlngkhxmulekaekbcakaehlngedim PDF emux 2012 12 15 subkhnemux 2011 08 08 Who uses Erlang for product development Frequently asked questions about Erlang subkhnemux 2007 08 05 Armstrong Joe June 2007 A history of Erlang Third ACM SIGPLAN Conference on History of Programming Languages San Diego California subkhnemux 2009 08 29 Larson Jim March 2009 Erlang for concurrent programming Communications of the ACM 52 3 48 doi 10 1145 1467247 1467263 Minsky Yaron Weeks Stephen July 2008 Caml Trading experiences with functional programming on Wall Street Journal of Functional Programming Cambridge University Press 18 4 553 564 doi 10 1017 S095679680800676X subkhnemux 2008 08 27 Leroy Xavier PDF CUFP 2007 khlngkhxmulekaekbcakaehlngedim PDF emux 2011 10 08 subkhnemux 2009 08 26 Haskell in industry Haskell Wiki subkhnemux 2009 08 26 Haskell has a diverse range of use commercially from aerospace and defense to finance to web startups hardware design firms and lawnmower manufacturers Hughes J Jones S P Wadler P June 2007 A history of Haskell being lazy with class Third ACM SIGPLAN Conference on History of Programming Languages San Diego California doi 10 1145 1238844 1238856 subkhnemux 2013 09 26 Mansell Howard 2008 CUFP 2008 khlngkhxmulekaekbcakaehlngedimemux 2015 07 08 subkhnemux 2009 08 29 Peake Alex 2009 CUFP 2009 khlngkhxmulekaekbcakaehlngedimemux 2009 10 17 subkhnemux 2009 08 29 Department of Applied Math University of Colorado khlngkhxmulekaekbcakaehlngedimemux 2007 11 13 subkhnemux 2006 08 28 Dimitre Novatchev The Functional Programming Language XSLT A proof through examples TopXML subkhnemux May 27 2006 David Mertz XML Programming Paradigms part four Functional Programming approached to XML processing IBM developerWorks subkhnemux May 27 2006 and 1974 SEQUEL A structured English query language Proceedings of the 1974 ACM SIGFIDET 249 264 2005 ISBN 1 55860 701 3 Holywell Simon 2014 Functional Programming in PHP php architect ISBN 9781940111056 Scala Wiki khlngkhxmulekaekbcakaehlngedimemux 2012 06 19 subkhnemux 2012 02 21 Effective Scala xangxingphidphlad payrabu lt ref gt dwychux racket video games thiniyaminklum lt references gt immienuxha