ภาษาคลีน
กระบวนทัศน์ | ภาษาโปรแกรมเชิงฟังก์ชันแบบบริสุทธิ์ |
---|---|
ผู้ออกแบบ | กลุ่มนักวิจัยซอฟต์แวร์ของมหาวิทยาลัยราดบาวด์ เมืองไนเมเคิน ประเทศเนเธอร์แลนด์ |
เริ่มเมื่อ | ค.ศ. 1987 |
รุ่นเสถียร | 3.0
/ 19 ตุลาคม ค.ศ. 2018 |
ระบบชนิดตัวแปร | strong, static, dynamic |
ระบบปฏิบัติการ | ระหว่างแพลตฟอร์ม |
สัญญาอนุญาต | Simplified BSD[1] |
นามสกุลของไฟล์ | .icl, .dcl, .abc |
เว็บไซต์ | clean |
ได้รับอิทธิพลจาก | |
ภาษาลีน Lean, มิรันด้า (Miranda), แฮสเคิล (Haskell) | |
ส่งอิทธิพลต่อ | |
แฮสเคิล (Haskell)[2] |
คลีน (Clean) เป็นภาษาโปรแกรมเชิงฟังก์ชันแบบบริสุทธิ์ โดยเคยมีชื่อเรียกว่า ภาษาคอนเคอร์แรนต์ คลีน ซีสเต็ม (Concurrent Clean System), จากนั้นมีชื่อว่า คลีน ซีสเต็ม (Clean System) และสุดท้าย คือ คลีน (Clean) ภาษาคลีนพัฒนาขึ้นโดยกลุ่มนักวิจัยจากมหาวิทยาลัยราดบาวด์ (Radboud University), เมืองไนเมเคิน (Nijmegen) ประเทศเนเธอร์แลนด์ ตั้งแต่ปี ค.ศ. 1987 ภาษานี้มีคุณลักษณะและซินแท็กซ์ (Syntax: วากยสัมพันธ์, การใช้คำและคำสั่งในการเขียนโปรแกรม) ที่ใกล้เคียงกับภาษาโปรแกรมเชิงฟังก์ชั่นอีกหลาย ๆ ภาษาที่เกิดขึ้นหลังจากนั้น ยกตัวอย่างที่เห็นชัดเจน คือ ภาษาแฮสเคิล
การเขียนโค้ดในคลีน เปรียบเทียบกับแฮสเคิล
[แก้]ความแตกต่างในการใช้คำ (Syntax วายกสัมพัทธ์)
[แก้]การเขียนโปรแกรมในคลีนมีความคล้ายคลึงอย่างมากกับแฮสเคิล โดยมีความแตกต่างที่เห็นได้ชัดในบางจุด:[3]
แฮสเคิล (Haskell) | คลีน (Clean) | หมายเหตุ |
---|---|---|
[ x | x <- [1..10] , isOdd x]
|
[ x \\ x <- [1..10] | isOdd x]
|
การจัดการลิสต์
|
x:xs
|
[x:xs]
|
การสร้างลิสต์
cons operator |
data Tree a
= Empty
| Node (Tree a) a (Tree a)
|
:: Tree a
= Empty
| Node (Tree a) a (Tree a)
|
ไทป์ข้อมูลแบบพีชคณิต
|
(Eq a, Eq b) => ...
|
... | Eq a & Eq b
|
การยืนยันคลาส และ การยืนยันบริบทการใช้งานคลาส
class assertions and contexts |
fun t@(Node l x r) = ...
|
fun t=:(Node l x r) = ...
|
การแสดงว่าตัวแปรสองตัวมีค่าเหมือนกัน
as-patterns |
if x > 10 then 10 else x
|
if (x > 10) 10 x
|
ถ้า if |
โดยรวมแล้ว ภาษาแฮสเคิลจะมีความหวานในวายกสัมพัทธ์ (syntactic sugar หมายถึง ง่ายต่อการเขียน การอ่าน่ และ ความเข้าใจมากกว่า เหมือนเคลือบน้ำตาลไว้) มากกว่าภาษาคลีน
อ้างอิง
[แก้]- Clean Wiki คลีนวิกิ แหล่งรวมฟังก์ชั่นต่าง ๆ และ การทำงานของภาษาคลีน
- Cloogle: Clean function search engine คลูเกิล แหล่งรวมคำสั่ง และ โค้ดแม่ของฟังก์ชั่นต่าง ๆ ที่อยู่ใน Standard Environment ของคลีน
- ↑ "Download Clean". Clean. สืบค้นเมื่อ 23 July 2019.
- ↑ "Idris - Uniqueness Types". สืบค้นเมื่อ 2018-11-20.
- ↑ ftp://ftp.cs.ru.nl/pub/Clean/papers/2007/achp2007-CleanHaskellQuickGuide.pdf[ลิงก์เสีย]