ภาษาแฮสเคิล

ภาษาแฮสเคิล (อังกฤษ: Haskell) /ˈhæskəl/[27] เป็นภาษาโปรแกรมที่มีวัตถุประสงค์เพื่อใช้การใช้งานที่หลากหลาย (general-purpose) ที่มีการไทป์แบบคงที่ (statically typed) ภาษาแฮสเคิลเป็นภาษาโปรแกรมเชิงฟังก์ชั่นแบบบริสุทธ์ (purely functional programming language) ที่มีลักษณะพิเศษคือการคาดคะเนไทป์ (type inference) และการประเมินผลแบบขี้เกียจ (lazy evaluation).[28][29] ภาษาแฮสเคิลพัฒนาขึ้นเพื่อการเรียนการสอน การวิจัย รวมไปถึงการประยุกต์ใช้ในเชิงธุรกิจและอุตสาหกรรม ภาษาแฮสเคิลเป็นแรงบันดาลใจให้กับภาษาโปรแกรมอื่น ๆ ที่มีความซับซ้อนอีกหลายภาษาให้มีฟีเจอร์แบบไทป์คลาส (type classes) ซึ่งทำให้ป้องกันการเออเรอร์ของไทป์ ทำให้การโอเปอเรเตอร์โอเวอร์โหลดดิ้ง (operator overloading) มีความปลอดภัยในการใช้ไทป์ หรือ มีไทป์เซฟตี้ (type-safe) มากขึ้น คอมไพเลอร์หลักสำหรับภาษาแฮสเคิลคือ คอมไพเลอร์กลาสโกลว์แฮสเคิล (Glasgow Haskell Compiler หรือ GHC) ภาษาแฮสเคิลตั้งชื่อตามนักตรรกศาสตร์ชาวอเมริกัน แฮสเคิล เคอร์รี่ (Haskell Curry)[1]

แฮสเคิล(Haskell)
กระบวนทัศน์Purely functional
ผู้ออกแบบLennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, John Hughes, Thomas Johnsson, Mark Jones, Simon Peyton Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, Philip Wadler
เริ่มเมื่อ1990; 34 ปีที่แล้ว (1990)[1]
รุ่นเสถียร
Haskell 2010[2] / กรกฎาคม 2010; 13 ปีที่แล้ว (2010-07)
รุ่นทดลอง
Haskell 2020 announced[3]
ระบบชนิดตัวแปรInferred, static, strong
ระบบปฏิบัติการCross-platform
นามสกุลของไฟล์.hs, .lhs
เว็บไซต์www.haskell.org
ตัวแปลภาษาหลัก
GHC, Hugs, NHC, JHC, Yhc, UHC
ภาษาย่อย
Helium, Gofer
ได้รับอิทธิพลจาก
Clean,[4] FP,[4] Gofer,[4] Hope and Hope+,[4] Id,[4] ISWIM,[4] KRC,[4] Lisp,[4] Miranda,[4] ML and Standard ML,[4] Orwell, SASL,[4] Scheme,[4] SISAL[4]
ส่งอิทธิพลต่อ
Agda,[5] Bluespec,[6] C++11/Concepts,[7] C#/LINQ,[8][9][10][11] CAL,[ต้องการอ้างอิง] Cayenne,[8] Clean,[8] Clojure,[12] CoffeeScript,[13] Curry,[8] Elm, Epigram,[ต้องการอ้างอิง] Escher,[14] F#,[15] Frege,[16] Hack,[17] Idris,[18] Isabelle,[8] Java/Generics,[8] LiveScript,[19] Mercury,[8] Ωmega,[ต้องการอ้างอิง] PureScript,[20] Python,[8][21] Raku,[22] Rust,[23] Scala,[8][24] Swift,[25] Timber,[26] Visual Basic 9.0[8][9]

อรรถศาสตร์ (semantics) หรือ คำต่าง ๆ ที่ใช้โค้ดภาษาแฮสเคิลมีต้นกำเนิดทางประวัติศาสตร์จากภาษามิแรนด้า (Miranda) ซึ่งเป็นภาษาที่กลุ่มนักวิทยาศาสตร์คอมพิวเตอร์ที่ร่วมกันสร้างภาษาแฮสเคิลใช้ในการต่อยอด[30] การกำหนดคุณลักษณะอย่างเป็นทางการสำหรับภาษาแฮสเคิลครั้งสุดท้ายมีขึ้นในเดือนกรกฎาคม ค.ศ.2010 (พ.ศ.2553) ส่วนการพัฒนาคอมไพเลอร์ GHC นั้นมีการปรับปรุงและพัฒนาอยู่เรื่อยมาและทำการขยายศักยภาพของภาษาแฮสเคิลขึ้นไปเรื่อย ๆ

โลโก้ภาษาแฮสเคิล

มีการใช้ภาษาแฮสเคิลในการวิจัยเชิงวิชาการ[31][32] และภาคธุรกิจอุตสาหกรรมต่าง ๆ[33][34] ในเดือนกันยายน ค.ศ.2020 (พ.ศ.2563) แฮสเคิลเป็นภาษาที่ได้รับความนิยมในการค้นใน Google เป็นอันดับที่ 28[35] ในส่วนของผู้ใช้ที่ยังแอคทีฟอยู่บนแพลตฟอร์ม GitHub ในส่วนของ source code repository มี source code ภาษาแฮสเคิลเพียง 1% เท่านั้น

ตัวอย่างโค้ด

การเขียนโปรแกรม "Hello, World!" program ใน Haskell (only the last line is strictly necessary):

module Main (main) where          -- not needed in interpreter, is the default in a module filemain :: IO ()                     -- the compiler can infer this type definitionmain = putStrLn "Hello, World!"

การเขียนฟังก์ชั่นแฟกทอเรียล (factorial) ในแฮสเคิลสามารถเขียนได้หลายแบบ:

-- Type annotation (optional, same for each implementation)factorial :: (Integral a) => a -> a-- Using recursion (with the "ifthenelse" expression)factorial n = if n < 2              then 1              else n * factorial (n - 1)-- Using recursion (with pattern matching)factorial 0 = 1factorial n = n * factorial (n - 1)-- Using recursion (with guards)factorial n   | n < 2     = 1   | otherwise = n * factorial (n - 1)-- Using a list and the "product" functionfactorial n = product [1..n]-- Using fold (implements "product")factorial n = foldl (*) 1 [1..n]-- Point-free stylefactorial = foldr (*) 1 . enumFromTo 1

อ้างอิง

🔥 Top keywords: วชิรวิชญ์ ไพศาลกุลวงศ์หน้าหลักองค์การกระจายเสียงและแพร่ภาพสาธารณะแห่งประเทศไทยยูฟ่าแชมเปียนส์ลีกชนกันต์ อาพรสุทธินันธ์สโมสรฟุตบอลแมนเชสเตอร์ซิตีพิเศษ:ค้นหาดวงใจเทวพรหม (ละครโทรทัศน์)กรงกรรมอสมทลิซ่า (แร็ปเปอร์)จีรนันท์ มะโนแจ่มสโมสรฟุตบอลอาร์เซนอลสโมสรฟุตบอลเรอัลมาดริดธี่หยดฟุตซอลชิงแชมป์เอเชีย 2024เฟซบุ๊กสโมสรฟุตบอลบาร์เซโลนาประเทศไทยเอเชียนคัพ รุ่นอายุไม่เกิน 23 ปี 2024วิทยุเสียงอเมริกาสโมสรฟุตบอลลิเวอร์พูลพระราชวัชรธรรมโสภณ (ศิลา สิริจนฺโท)พระบาทสมเด็จพระวชิรเกล้าเจ้าอยู่หัวรักวุ่น วัยรุ่นแสบวันไหลนริลญา กุลมงคลเพชรสโมสรฟุตบอลเชลซีสมเด็จพระกนิษฐาธิราชเจ้า กรมสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารีหลานม่าสุภาพบุรุษจุฑาเทพ (ละครโทรทัศน์)สโมสรฟุตบอลไบเอิร์นมิวนิกกรุงเทพมหานครสโมสรฟุตบอลแมนเชสเตอร์ยูไนเต็ดคิม ซู-ฮย็อนภาวะโลกร้อนสาธุ (ละครโทรทัศน์)รายชื่ออักษรย่อของจังหวัดในประเทศไทยสโมสรฟุตบอลปารีแซ็ง-แฌร์แม็ง