ภาษาคลีน

คลีน (Clean) เป็นภาษาโปรแกรมเชิงฟังก์ชันแบบบริสุทธิ์ โดยเคยมีชื่อเรียกว่า ภาษาคอนเคอร์แรนต์ คลีน ซีสเต็ม (Concurrent Clean System), จากนั้นมีชื่อว่า คลีน ซีสเต็ม (Clean System) และสุดท้าย คือ คลีน (Clean) ภาษาคลีนพัฒนาขึ้นโดยกลุ่มนักวิจัยจากมหาวิทยาลัยราดบาวด์ (Radboud University), เมืองไนเมเคิน (Nijmegen) ประเทศเนเธอร์แลนด์ ตั้งแต่ปี ค.ศ. 1987 ภาษานี้มีคุณลักษณะและซินแท็กซ์ (Syntax: วากยสัมพันธ์, การใช้คำและคำสั่งในการเขียนโปรแกรม) ที่ใกล้เคียงกับภาษาโปรแกรมเชิงฟังก์ชั่นอีกหลาย ๆ ภาษาที่เกิดขึ้นหลังจากนั้น ยกตัวอย่างที่เห็นชัดเจน คือ ภาษาแฮสเคิล

 การเขียนโค้ดในคลีน เปรียบเทียบกับแฮสเคิล 

 ความแตกต่างในการใช้คำ (Syntax วายกสัมพัทธ์) 
การเขียนโปรแกรมในคลีนมีความคล้ายคลึงอย่างมากกับแฮสเคิล โดยมีความแตกต่างที่เห็นได้ชัดในบางจุด:ftp://ftp.cs.ru.nl/pub/Clean/papers/2007/achp2007-CleanHaskellQuickGuide.pdf
แฮสเคิล (Haskell)คลีน (Clean)หมายเหตุ[ x | x <- [1..10] , isOdd x][ x \\ x <- [1..10] | isOdd x]การจัดการลิสต์
list comprehension

ในตัวอย่าง ทำการสร้างลิสต์ของเลขคี่ จากจำนวนเต็มที่อยู่ระหว่าง 1 ถึง 10x:xs[x:xs]การสร้างลิสต์
cons operatordata Tree a
  = Empty
  | Node (Tree a) a (Tree a):: Tree a
  = Empty
  | Node (Tree a) a (Tree a)ไทป์ข้อมูลแบบพีชคณิต
algebraic data type

ในตัวอย่าง เป็นการสร้างต้นไม้แบบไบนารี่ ที่มีโหนดรากหนึ่งตัว และ โหนดลูกสองตัว(Eq a, Eq b) => ...... | Eq a & Eq bการยืนยันคลาส และ การยืนยันบริบทการใช้งานคลาส
class assertions and contextsfun t@(Node l x r) = ...fun t=:(Node l x r) = ...การแสดงว่าตัวแปรสองตัวมีค่าเหมือนกัน
as-patternsif x > 10 then 10 else xif (x > 10) 10 xถ้า if
โดยรวมแล้ว ภาษาแฮสเคิลจะมีความหวานในวายกสัมพัทธ์ (syntactic sugar หมายถึง ง่ายต่อการเขียน การอ่าน่ และ ความเข้าใจมากกว่า เหมือนเคลือบน้ำตาลไว้) มากกว่าภาษาคลีน

 อ้างอิง 

 Clean Wiki คลีนวิกิ แหล่งรวมฟังก์ชั่นต่าง ๆ และ การทำงานของภาษาคลีน
 Cloogle: Clean function search engine คลูเกิล แหล่งรวมคำสั่ง และ โค้ดแม่ของฟังก์ชั่นต่าง ๆ ที่อยู่ใน Standard Environment ของคลีน

หมวดหมู่:ภาษาโปรแกรม
หมวดหมู่:ซอฟต์แวร์เสรีข้ามแพลตฟอร์ม