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

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Veer66 (คุย | ส่วนร่วม)
สร้างขึ้นโดยการแปลหน้า "Functional programming"
 
Veer66 (คุย | ส่วนร่วม)
แก้ไข citation
บรรทัด 1:
ใน[[วิทยาการคอมพิวเตอร์]] '''การเขียนโปรแกรมเชิงฟังก์ชัน'''เป็นกระบวนทัศน์การเขียนโปรแกรมที่รูปแบบการสร้างโครงสร้างและส่วนประกอบของโปรแกรมคอมพิวเตอร์ซึ่งปฏิบัติต่อการคำนวณว่าเป็นการประเมินผล[[ฟังก์ชันทางคณิตศาสตร์]]และหลีกเลี่ยงการเปลี่ยนแปลง[[สถานะ]]และข้อมูล[[ที่เปลี่ยนแปลงได้]]
โดยเป็นกระบวนทัศน์การเขียนโปรแกรมเชิงประกาศซึ่งหมายความว่าการเขียนโปรแกรมทำได้โดย[[นิพจน์]]<ref name="expression style">{{Citecite web|url=https://wiki.haskell.org/Declaration_vs._expression_style#Expression_style|title=Declaration vs. expression style - HaskellWiki|publisher=}}</ref>หรือการประกาศ<ref name="declaration style">{{Citecite web|url=https://wiki.haskell.org/Declaration_vs._expression_style#Declaration_style|title=Declaration vs. expression style - HaskellWiki|publisher=}}</ref>แทนข้อความสั่ง ในโปรแกรมเชิงฟังก์ชัน ค่าผลลัพธ์ของฟังก์ชันขึ้นอยู่กับ[ อาร์กิวเมนต์]ที่นำเข้าสู่ฟังก์ชันเท่านั้น ดังนั้นการเรียกฟังก์ชัน f สองครั้งด้วยค่าอาร์กิวเมนต์ x เดียวกันจะให้ค่าผลลัพธ์ f(x) เท่ากันทุกครั้ง การกำจัดผลข้างเคียง ได้แก่ การเปลี่ยนแปลงสถานะที่ไม่ขึ้นกับสิ่งที่นำเข้าฟังก์ชัน สามารถทำให้ง่ายขึ้นที่จะทำความเข้าใจและพยากรณ์พฤฒิกรรมของโปรแกรมซึ่งเป็นหนึ่งในแรงจูงใจของการพัฒนาของการเขียนโปรแกรมเชิงฟังก์ชัน
 
ใน ภาษา haskelllanguage ภาษา เริ่มกับความเห็นพ้องใน 1987 จัดรูปแบบ เปิดมาตรฐาน สำหรับใช้งานโปรแกรวิจัย;implementation ที่พึ่งถูกปล่อยตัวได้ยังดำเนินการอยู่ตั้งแต่ปี 1990 เลย
 
== อ้างอิง ==
{{reflist|colwidth=30em|refs=<ref name="expression style">{{cite web|url=https://wiki.haskell.org/Declaration_vs._expression_style#Expression_style|title=Declaration vs. expression style - HaskellWiki|publisher=}}</ref>
{{reflist|colwidth=30em|refs=<ref name="clinger1987">{{cite journal | last = Clinger | first = Will | title = MultiTasking and MacScheme | magazine = MacTech | volume = 3 | issue = 12 | year = 1987 | url = http://www.mactech.com/articles/mactech/Vol.03/03.12/Multitasking/index.html | accessdate = 2008-08-28 }}</ref> <ref name="hartheimer1987">{{cite journal | last = Hartheimer | first = Anne | title = Programming a Text Editor in MacScheme+Toolsmith | magazine = MacTech | volume = 3 | issue = 1 | year = 1987 | url = http://www.mactech.com/articles/mactech/Vol.03/03.1/SchemeWindows/index.html | accessdate = 2008-08-28 }}</ref> <ref name="kidd2007">{{cite conference | last = Kidd | first = Eric | url = http://cufp.galois.com/2007/abstracts.html#EricKidd | title = Terrorism Response Training in Scheme | conference = CUFP 2007 | accessdate = 2009-08-26 }}</ref> <ref name="cleis2006">{{cite conference | last = Cleis | first = Richard | url = http://cufp.galois.com/2006/abstracts.html#RichardCleis | title = Scheme in Space | conference = CUFP 2006 | accessdate = 2009-08-26 }}</ref> <ref name="erlang-faq">{{cite web | title = Who uses Erlang for product development? | work=Frequently asked questions about Erlang | url = http://www.erlang.org/faq/faq.html#AEN50 | accessdate = 2007-08-05 }}</ref> <ref name="armstrong2007">{{cite conference | last = Armstrong | first = Joe | title = A history of Erlang | conference = Third ACM SIGPLAN Conference on History of Programming Languages | location = San Diego, California | date = June 2007 | url = http://doi.acm.org/10.1145/1238844.1238850 | accessdate = 2009-08-29 }}</ref> <ref name="larson2009">{{cite journal | last = Larson | first = Jim | title = Erlang for concurrent programming | journal = Communications of the ACM | volume= 52 | issue= 3 | date = March 2009 | doi=10.1145/1467247.1467263 | page=48 }}</ref> <ref name="minksy2008">{{cite journal | last = Minsky | first = Yaron | last2 = Weeks | first2 = Stephen | title = Caml Trading&nbsp;— experiences with functional programming on Wall Street | journal = Journal of Functional Programming | volume = 18 | issue = 4 | pages = 553–564 | publisher = Cambridge University Press | location = |date=July 2008 | url = http://journals.cambridge.org/action/displayAbstract?aid=1899164 | doi = 10.1017/S095679680800676X | accessdate = 2008-08-27 }}</ref> <ref name="leroy2007">{{cite conference | last = Leroy | first = Xavier | title = Some uses of Caml in Industry | url = http://cufp.galois.com/2007/slides/XavierLeroy.pdf | conference = CUFP 2007 | accessdate = 2009-08-26 }}</ref><ref name="haskell-industry">{{cite web | title = Haskell in industry | work = Haskell Wiki | url = http://www.haskell.org/haskellwiki/Haskell_in_industry | accessdate = 2009-08-26 | quote=Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and lawnmower manufacturers. }}</ref> <ref name="effective-scala">{{cite web | title = Effective Scala | work = Scala Wiki | url = http://twitter.github.com/effectivescala/?sd | accessdate = 2012-02-21 | quote=Effective Scala. }}</ref><ref name="racket-video-games">{{cite web | title = State-Based Scripting in Uncharted 2 | url = http://www.gameenginebook.com/gdc09-statescripting-uncharted2.pdf | archiveurl = https://web.archive.org/web/20121215014637/http://www.gameenginebook.com/gdc09-statescripting-uncharted2.pdf | archivedate = 2012-12-15 | accessdate = 2011-08-08 }}</ref> <ref name="hudak2007">{{cite conference | last = Hudak | first = Paul |author2=Hughes, J. |author3=Jones, S. P. |author4=Wadler, P. | authorlink=Paul Hudak | title = A history of Haskell: being lazy with class | url=http://dl.acm.org/citation.cfm?doid=1238844.1238856 | conference = Third ACM SIGPLAN Conference on History of Programming Languages | location = San Diego, California| date = June 2007 | doi = 10.1145/1238844.1238856 | accessdate = 2013-09-26 }}</ref> <ref name="useR">{{cite web | url = http://www.r-project.org/useR-2006/program.html | title = The useR! 2006 conference schedule includes papers on the commercial use of R |publisher=R-project.org | date = 2006-06-08 | accessdate = 2011-06-20 }}</ref><ref name="Chambers">{{cite book | last = Chambers | first = John M. | authorlink=John Chambers (programmer) | title = Programming with Data: A Guide to the S Language | publisher=Springer Verlag | year = 1998 | pages = 67–70 | isbn = 978-0-387-98503-9 }}</ref><ref name="Amath-CO">{{cite web | author = Department of Applied Math, University of Colorado | title = Functional vs. Procedural Programming Language | url = http://amath.colorado.edu/computing/mmm/funcproc.html | archiveurl = https://web.archive.org/web/20071113175801/http://amath.colorado.edu/computing/mmm/funcproc.html | archivedate = 2007-11-13 | accessdate = 2006-08-28 }}</ref> <ref name="Novatchev">{{cite web | url = http://www.topxml.com/xsl/articles/fp/ | author = Dimitre Novatchev | title = The Functional Programming Language XSLT&nbsp;— A proof through examples | accessdate = May 27, 2006 | work=TopXML }}</ref><ref name="Mertz">{{cite web | url = http://gnosis.cx/publish/programming/xml_models_fp.html | author = David Mertz | title = XML Programming Paradigms (part four): Functional Programming approached to XML processing | accessdate = May 27, 2006 | work=IBM developerWorks }}</ref> <ref name="Chamberlin_Boyce">{{cite journal | title = SEQUEL: A structured English query language | author = [[Donald D. Chamberlin]] and [[Raymond F. Boyce]] | journal = Proceedings of the 1974 ACM SIGFIDET | pages = 249–264 | year = 1974 }}</ref><ref name="Sim-Diasca">{{cite web | title = Sim-Diasca: a large-scale discrete event concurrent simulation engine in Erlang | url = http://research.edf.com/research-and-the-scientific-community/software/sim-diasca-80704.html |date=November 2011 }}</ref> <ref name="Spiewak">{{cite web | url = http://www.codecommit.com/blog/scala/implementing-persistent-vectors-in-scala | author = Daniel Spiewak | title = Implementing Persistent Vectors in Scala | accessdate = Apr 17, 2012}}</ref> <ref name="Opal (programming language)">[[Opal (programming language)|OPtimized Applicative Language]]</ref>}}
 
<ref name="declaration style">{{cite web|url=https://wiki.haskell.org/Declaration_vs._expression_style#Declaration_style|title=Declaration vs. expression style - HaskellWiki|publisher=}}</ref>
}}
[[หมวดหมู่:กระบวนทัศน์การเขียนโปรแกรม]]