fbpx
维基百科

Raku

Raku,原名Perl 6,系perl程式語言家族的成員之一,通用程序设计语言,支持多重编程范式,渐进式类型。Raku主要設計者為拉里·沃尔。作為Perl的後繼者,在2000年開始發展,由于接續在Perl 5之後,称为Perl 6,在2019年10月更名为Raku[6]。Raku语言在语法與Perl 5不同,被视为一种新的程式語言,但提供Perl 5的兼容模式。

Raku
Raku吉祥物Camelia[1]
编程范型多重编程范式
语言家族Perl
設計者拉里·沃尔
實作者Raku community
发行时间2015年12月25日,​7年前​(2015-12-25
当前版本
  • v6.d "Diwali" (2019年7月17日;穩定版本)[2]
型態系統動態、漸進式
操作系统跨平台
許可證GNU通用公共许可证
艺术许可协议 2.0
文件扩展名.raku, .p6, .pl6, .pm6, .pod6 [3]
網站raku.org
主要實作產品
Rakudo英语Rakudo Perl 6
啟發語言
Haskell[4]JavaScriptPerl 5RubySmalltalk
影響語言
Perl 5[5]Haskell[5]、AntLang

Raku拥有丰富的现代程序语言特征,重新定义了正規表達式和增加函數式程式語言的特征,成为可演化的语言。为保证Raku和Perl社区的持续稳定发展,Raku编译器使用Raku来重写。为保证Perl语言原有函式庫的重用,编译器提供同Perl 5语言的兼容模式。

2010年7月,Rakudo的Rakudo Star,作为主要版本的试验品发布。这一发布让人们有一个可实用的编译器,方便编写程序和反映需求(Perl6的规范尚未冻结,以期根据人们的使用体验以及编译器的实现等来增补某些特性)。

歷史 编辑

在2000年時,拉里·沃尔宣告開始開發Perl 6。最初的目標,是移除Perl因為歷史因素而保留下來的一些功能,旨在“容易的事应当容易处理,难事应当变得容易,不可能的事应当办成”,开始面向所有人编制RFC。总共产生了361份RFC。RFC完成后,交由拉里·沃尔审阅和分类。

Raku开发使用三种开发方式。第一,通过IRC的#raku频道。第二,Perl基金会的电子邮件列表。第三,寄存在Git上的源代码。

2019年10月更名為Raku。

代码范例 编辑

Hello World 编辑

raku -e "say 'Hello, world'" 


输出一百万以内的所有素数 编辑

raku -e 'put (^1_000_000).grep: *.is-prime' 


阶乘 编辑

# 递归实现 sub factorial1(Int $n --> Int) { return $n ?? $n * factorial1($n-1) !! 1; } # 直接使用运算符 sub factorial2(Int $n --> Int) { return [*] 1..$n; } # 惰性计算 sub factorial3(Int $n --> Int) { my $fac := 1, { $^a * (1 + ++$) } ... *; $fac[$n-1]; }

巨集 编辑

 macro hello($what) {  quasi { say "Hello { {{{$what}}} }" };  } 

和Ruby比較 编辑

一般都是認為Ruby vs. Python(可能是因為同樣採取縮排的設計),但是就一些相關的討論和訪談,Ruby vs. Perl 6(Raku)的可能性反而是最大的。[7] Ruby的創始者松本行弘(Matz)在接受O'Reilly的訪問時[8],也提到「Ruby借用了很多Perl的東西……,Python遠比Perl要少……」。從Ruby的命名也可以看出Matz遠大的企圖心:「Pearl(珍珠)是六月的誕生石[9],而Ruby是七月的誕生石,我認為Ruby這個名字作為Perl之後的一門語言的名字真是再恰當不過了。」[10]

Perl之父拉里·沃尔在《Larry Wall On Perl, Religion, and……[11] 一文中表示:「很多方面上我還是很喜歡Ruby的,這是因為那些部分是從Perl借過去的。:-)」、「我還喜歡Ruby的C<*>一元星號操作符,所以我把它加到Perl 6里面。」

但是拉里·沃爾在文中也說:「Ruby的主要問題在於它的最少驚訝原則可能讓人誤入歧途,就好像隱藏式詞法範圍。問題在於減少誰的驚訝?專家和初學者對不同的事情驚訝。從一個小程序寫成大程序的人和從開始就寫大程序的人可能對不同的事情感到驚訝。」

参考文献 编辑

  1. ^ Jackson, Joab. Perl creator hints at imminent release of long-awaited Perl 6. IDG News Service. 23 July 2010 [2015-02-08]. (原始内容于2014-07-31). 
  2. ^ https://github.com/perl6/roast/blob/master/docs/announce/6.d.md#changelog; 检索日期: 2019年8月11日.
  3. ^ 存档副本. [2018-12-17]. (原始内容于2018-11-10). 
  4. ^ . Perl Foundation Perl 6 Wiki. The Perl Foundation. 2011-02-28 [2015-02-08]. (原始内容存档于2012-01-21). 
  5. ^ 5.0 5.1 唐鳳, a.k.a. Audrey Tang. How to Implement Perl 6 in '10. 2010-04-21 [2018-12-17]. (原始内容于2018-12-18). 
  6. ^ Perl 6 renamed to Raku. LWN.net. 15 October 2019 [16 October 2019]. (原始内容于2019-10-17). 
  7. ^ . [2020-01-21]. (原始内容存档于2018-11-10). 
  8. ^ . [2007-07-12]. (原始内容存档于2020-04-09). 
  9. ^ Larry Wall在命名Perl时,曾经想过使用Pearl作为名称,但发现已经有Pearl这个语言了,于是就成为Perl。
  10. ^ O'Reilly訪問Matz。. [2007-07-19]. (原始内容于2009-07-28). 
  11. ^ Larry Wall On Perl, Religion, and……. [2007-07-12]. (原始内容于2007-07-29). 

外部連結 编辑

規格 编辑

  • Synopses - The evolving summary of each Apocalypse, updated regularly(页面存档备份,存于互联网档案馆),這些文件被視為Raku正式的語言架構。
  • Exegeses - Further explanation of each Apocalypse with code samples(页面存档备份,存于互联网档案馆
  • Apocalypses - The first-pass drafts from Larry Wall(页面存档备份,存于互联网档案馆
  • Raku的正式說明文件。

實做 编辑

  • Raku(页面存档备份,存于互联网档案馆),Raku語言的主要資訊站台。
  • Rakudo(页面存档备份,存于互联网档案馆),目前最完整的實作(Activated)
  • Perlito(页面存档备份,存于互联网档案馆),以 Perl、Raku、Javascript 語言實做的 Perl / Raku Compiler
  • Pugs(页面存档备份,存于互联网档案馆),以Haskell實做Raku的計畫。(Deactivated)
  • Parrot(页面存档备份,存于互联网档案馆),Parrot的主站。
  • v6.pm(页面存档备份,存于互联网档案馆),包裝為 Perl 模組的,

其他 编辑

raku, 原名perl, 系perl程式語言家族的成員之一, 通用程序设计语言, 支持多重编程范式, 渐进式类型, 主要設計者為拉里, 沃尔, 作為perl的後繼者, 在2000年開始發展, 由于接續在perl, 5之後, 称为perl, 在2019年10月更名为, 语言在语法與perl, 5不同, 被视为一种新的程式語言, 但提供perl, 5的兼容模式, 吉祥物camelia, 编程范型多重编程范式语言家族perl設計者拉里, 沃尔實作者, community发行时间2015年12月25日, 7年前, 201. Raku 原名Perl 6 系perl程式語言家族的成員之一 通用程序设计语言 支持多重编程范式 渐进式类型 Raku主要設計者為拉里 沃尔 作為Perl的後繼者 在2000年開始發展 由于接續在Perl 5之後 称为Perl 6 在2019年10月更名为Raku 6 Raku语言在语法與Perl 5不同 被视为一种新的程式語言 但提供Perl 5的兼容模式 RakuRaku吉祥物Camelia 1 编程范型多重编程范式语言家族Perl設計者拉里 沃尔實作者Raku community发行时间2015年12月25日 7年前 2015 12 25 当前版本v6 d Diwali 2019年7月17日 穩定版本 2 型態系統動態 漸進式操作系统跨平台許可證GNU通用公共许可证艺术许可协议 2 0文件扩展名 raku p6 pl6 pm6 pod6 3 網站raku wbr org主要實作產品Rakudo 英语 Rakudo Perl 6 啟發語言Haskell 4 JavaScript Perl 5 Ruby Smalltalk影響語言Perl 5 5 Haskell 5 AntLangRaku拥有丰富的现代程序语言特征 重新定义了正規表達式和增加函數式程式語言的特征 成为可演化的语言 为保证Raku和Perl社区的持续稳定发展 Raku编译器使用Raku来重写 为保证Perl语言原有函式庫的重用 编译器提供同Perl 5语言的兼容模式 2010年7月 Rakudo的Rakudo Star 作为主要版本的试验品发布 这一发布让人们有一个可实用的编译器 方便编写程序和反映需求 Perl6的规范尚未冻结 以期根据人们的使用体验以及编译器的实现等来增补某些特性 目录 1 歷史 2 代码范例 2 1 Hello World 2 2 输出一百万以内的所有素数 2 3 阶乘 2 4 巨集 3 和Ruby比較 4 参考文献 5 外部連結 5 1 規格 5 2 實做 5 3 其他歷史 编辑在2000年時 拉里 沃尔宣告開始開發Perl 6 最初的目標 是移除Perl因為歷史因素而保留下來的一些功能 旨在 容易的事应当容易处理 难事应当变得容易 不可能的事应当办成 开始面向所有人编制RFC 总共产生了361份RFC RFC完成后 交由拉里 沃尔审阅和分类 Raku开发使用三种开发方式 第一 通过IRC的 raku频道 第二 Perl基金会的电子邮件列表 第三 寄存在Git上的源代码 2019年10月更名為Raku 代码范例 编辑Hello World 编辑 raku e say Hello world 输出一百万以内的所有素数 编辑 raku e put 1 000 000 grep is prime 阶乘 编辑 递归实现 sub factorial1 Int n gt Int return n n factorial1 n 1 1 直接使用运算符 sub factorial2 Int n gt Int return 1 n 惰性计算 sub factorial3 Int n gt Int my fac 1 a 1 fac n 1 巨集 编辑 macro hello what quasi say Hello what 和Ruby比較 编辑一般都是認為Ruby vs Python 可能是因為同樣採取縮排的設計 但是就一些相關的討論和訪談 Ruby vs Perl 6 Raku 的可能性反而是最大的 7 Ruby的創始者松本行弘 Matz 在接受O Reilly的訪問時 8 也提到 Ruby借用了很多Perl的東西 Python遠比Perl要少 從Ruby的命名也可以看出Matz遠大的企圖心 Pearl 珍珠 是六月的誕生石 9 而Ruby是七月的誕生石 我認為Ruby這個名字作為Perl之後的一門語言的名字真是再恰當不過了 10 Perl之父拉里 沃尔在 Larry Wall On Perl Religion and 11 一文中表示 很多方面上我還是很喜歡Ruby的 這是因為那些部分是從Perl借過去的 我還喜歡Ruby的C lt gt 一元星號操作符 所以我把它加到Perl 6里面 但是拉里 沃爾在文中也說 Ruby的主要問題在於它的最少驚訝原則可能讓人誤入歧途 就好像隱藏式詞法範圍 問題在於減少誰的驚訝 專家和初學者對不同的事情驚訝 從一個小程序寫成大程序的人和從開始就寫大程序的人可能對不同的事情感到驚訝 参考文献 编辑 Jackson Joab Perl creator hints at imminent release of long awaited Perl 6 IDG News Service 23 July 2010 2015 02 08 原始内容存档于2014 07 31 https github com perl6 roast blob master docs announce 6 d md changelog 检索日期 2019年8月11日 存档副本 2018 12 17 原始内容存档于2018 11 10 Glossary of Terms and Jargon Perl Foundation Perl 6 Wiki The Perl Foundation 2011 02 28 2015 02 08 原始内容存档于2012 01 21 5 0 5 1 唐鳳 a k a Audrey Tang How to Implement Perl 6 in 10 2010 04 21 2018 12 17 原始内容存档于2018 12 18 Perl 6 renamed to Raku LWN net 15 October 2019 16 October 2019 原始内容存档于2019 10 17 日本的Perl社群名人 宮川達彥專訪 2020 01 21 原始内容存档于2018 11 10 訪問Matz 2007 07 12 原始内容存档于2020 04 09 Larry Wall在命名Perl时 曾经想过使用Pearl作为名称 但发现已经有Pearl这个语言了 于是就成为Perl O Reilly訪問Matz 2007 07 19 原始内容存档于2009 07 28 Larry Wall On Perl Religion and 2007 07 12 原始内容存档于2007 07 29 外部連結 编辑規格 编辑 Synopses The evolving summary of each Apocalypse updated regularly 页面存档备份 存于互联网档案馆 這些文件被視為Raku正式的語言架構 Exegeses Further explanation of each Apocalypse with code samples 页面存档备份 存于互联网档案馆 Apocalypses The first pass drafts from Larry Wall 页面存档备份 存于互联网档案馆 Official Raku Documentation Raku的正式說明文件 實做 编辑 Raku 页面存档备份 存于互联网档案馆 Raku語言的主要資訊站台 Rakudo 页面存档备份 存于互联网档案馆 目前最完整的實作 Activated Perlito 页面存档备份 存于互联网档案馆 以 Perl Raku Javascript 語言實做的 Perl Raku Compiler Pugs 页面存档备份 存于互联网档案馆 以Haskell實做Raku的計畫 Deactivated Parrot 页面存档备份 存于互联网档案馆 Parrot的主站 v6 pm 页面存档备份 存于互联网档案馆 包裝為 Perl 模組的 其他 编辑 Planet Perl 6 Perl 6 Perl 5 Differences 取自 https zh wikipedia org w index php title Raku amp oldid 75640430, 维基百科,wiki,书籍,书籍,图书馆,

文章

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