fbpx
维基百科

Clean语言

Clean,在開發期間稱為Concurrent Clean,是純函數式程序设计語言。Clean由荷蘭奈梅亨拉德伯德大学自1987年开始製作和維護[4]

Clean
编程范型函数式
設計者奈梅亨拉德伯德大学软件技术研究组
发行时间1987年,​36年前​(1987
当前版本
  • 3.1 (2022年9月22日;穩定版本)[1]
型態系統强类型, 静态, 动态
操作系统跨平台
許可證简化BSD[2]
文件扩展名.icl, .dcl, .abc
網站clean.cs.ru.nl
啟發語言
Lean, Miranda, Haskell
影響語言
Haskell, Idris[3]

概述 编辑

Clean和Haskell有很多相似之處:参照透明性英语referential transparence列表推导式守卫垃圾回收高阶函数柯里化惰性求值

Clean是用C寫成的。Clean程式很容易跨平台,在大部分情況下,要轉移到另一個平台只需在那裏重新編譯一次即可,不用改動原始碼。它可運行於WindowsMacintoshSolarisLinux。Clean具有叫做“ITasks”的面向任务编程工具箱。

例子 编辑

一个在屏幕上打印"Hello World!"的程序:

module hello Start :: String Start = "Hello, world!" 

第一行module hello,告訴編譯器這個模組(或一個project的部份)叫“hello”。除非你改變了這一行,否則它必須儲存於一個叫hello.icl的檔案。之後的一行,Start :: String,表示這個變數Start的type是String。最後一行表示這個變數是“Hello, world!”。因為這裏無指定用GUI,所以這句“Hello, world!”會顯示在控制台(console)之中。

阶乘:

fac :: Int -> Int fac 0 = 1 fac n = n * fac (n-1) Start = fac 10 
fac :: Int -> Int fac n = prod [1..n] // The product of the numbers 1 to n Start = fac 10 

斐波那契数列

fib :: Int -> Int fib 0 = 1 fib 1 = 1 fib n = fib (n - 2) + fib (n - 1)  Start = fib 7 
fibs :: Int Int -> [Int] fibs x_2 x_1 = [x_2:fibs x_1 (x_2 + x_1)] fib :: Int -> Int fib n = (fibs 1 1) !! n Start = fib 7 

中缀算子:

(^) infixr 8 :: Int Int -> Int (^) x 0 = 1 (^) x n = x * x ^ (n-1) 

类型声明声称了这个函数是右结合中缀算子,具有优先级8:这声称了x*x^(n-1)等价于x*(x^(n-1))而不是(x*x)^(n-1)。这个算子预定义于Clean标准库StdEnv中。

比较于Haskell 编辑

语法区别 编辑

Clean的语法非常类似于Haskell,具有一些值得注意的区别:[5]

Haskell Clean 评论
[ x | x <- [1..10] , isOdd x] 
[ x \\ x <- [1..10] | isOdd x] 
列表推导式
x:xs 
[x:xs] 
cons算子
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 
类断言和上下文
fun t@(Node l x r) = ... 
fun t=:(Node l x r) = ... 
as模式
if x > 10 then 10 else x 
if (x > 10) 10 x 
if

一般而言,Haskell比Clean介入了更多的语法糖

引用 编辑

  1. ^ Clean 3.1 (Stable). [2022年12月19日]. 
  2. ^ . Clean. [23 July 2019]. (原始内容存档于2019-07-23). 
  3. ^ "Idris - Uniqueness Types". [2018-11-20]. (原始内容于2018-11-21). 
  4. ^ . [2021-02-27]. (原始内容存档于2019-05-25). 
  5. ^ ftp://ftp.cs.ru.nl/pub/Clean/papers/2007/achp2007-CleanHaskellQuickGuide.pdf

外部連結 编辑

    clean语言, clean, 在開發期間稱為concurrent, clean, 是純函數式程序设计語言, clean由荷蘭的奈梅亨拉德伯德大学自1987年开始製作和維護, clean编程范型函数式設計者奈梅亨拉德伯德大学软件技术研究组发行时间1987年, 36年前, 1987, 当前版本3, 2022年9月22日, 穩定版本, 型態系統强类型, 静态, 动态操作系统跨平台許可證简化bsd, 文件扩展名, abc網站clean, nl啟發語言lean, miranda, haskell影響語言haskell, i. Clean 在開發期間稱為Concurrent Clean 是純函數式程序设计語言 Clean由荷蘭的奈梅亨拉德伯德大学自1987年开始製作和維護 4 Clean编程范型函数式設計者奈梅亨拉德伯德大学软件技术研究组发行时间1987年 36年前 1987 当前版本3 1 2022年9月22日 穩定版本 1 型態系統强类型 静态 动态操作系统跨平台許可證简化BSD 2 文件扩展名 icl dcl abc網站clean wbr cs wbr ru wbr nl啟發語言Lean Miranda Haskell影響語言Haskell Idris 3 目录 1 概述 2 例子 3 比较于Haskell 3 1 语法区别 4 引用 5 外部連結概述 编辑Clean和Haskell有很多相似之處 参照透明性 英语 referential transparence 列表推导式 守卫 垃圾回收 高阶函数 柯里化和惰性求值 Clean是用C寫成的 Clean程式很容易跨平台 在大部分情況下 要轉移到另一個平台只需在那裏重新編譯一次即可 不用改動原始碼 它可運行於Windows Macintosh Solaris和Linux Clean具有叫做 ITasks 的面向任务编程工具箱 例子 编辑一个在屏幕上打印 Hello World 的程序 module hello Start String Start Hello world 第一行module hello 告訴編譯器這個模組 或一個project的部份 叫 hello 除非你改變了這一行 否則它必須儲存於一個叫hello icl的檔案 之後的一行 Start String 表示這個變數Start的type是String 最後一行表示這個變數是 Hello world 因為這裏無指定用GUI 所以這句 Hello world 會顯示在控制台 console 之中 阶乘 fac Int gt Int fac 0 1 fac n n fac n 1 Start fac 10 fac Int gt Int fac n prod 1 n The product of the numbers 1 to n Start fac 10斐波那契数列 fib Int gt Int fib 0 1 fib 1 1 fib n fib n 2 fib n 1 Start fib 7 fibs Int Int gt Int fibs x 2 x 1 x 2 fibs x 1 x 2 x 1 fib Int gt Int fib n fibs 1 1 n Start fib 7中缀算子 infixr 8 Int Int gt Int x 0 1 x n x x n 1 类型声明声称了这个函数是右结合中缀算子 具有优先级8 这声称了x x n 1 等价于x x n 1 而不是 x x n 1 这个算子预定义于Clean标准库StdEnv中 比较于Haskell 编辑语法区别 编辑 Clean的语法非常类似于Haskell 具有一些值得注意的区别 5 Haskell Clean 评论 x x lt 1 10 isOdd x x x lt 1 10 isOdd x 列表推导式x xs x xs cons算子data Tree a Empty Node Tree a a Tree a Tree a Empty Node Tree a a Tree a 代数数据类型 Eq a Eq b gt Eq a amp Eq b 类断言和上下文fun t Node l x r fun t Node l x r as模式if x gt 10 then 10 else x if x gt 10 10 x if一般而言 Haskell比Clean介入了更多的语法糖 引用 编辑 Clean 3 1 Stable 2022年12月19日 Download Clean Clean 23 July 2019 原始内容存档于2019 07 23 Idris Uniqueness Types 2018 11 20 原始内容存档于2018 11 21 FAQ Clean 2021 02 27 原始内容存档于2019 05 25 ftp ftp cs ru nl pub Clean papers 2007 achp2007 CleanHaskellQuickGuide pdf外部連結 编辑Clean主頁 取自 https zh wikipedia org w index php title Clean语言 amp oldid 78470775, 维基百科,wiki,书籍,书籍,图书馆,

    文章

    ,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。