<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Raku</id>
	<title>Raku - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Raku"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Raku&amp;action=history"/>
	<updated>2026-07-19T11:06:26Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Raku&amp;diff=225684&amp;oldid=prev</id>
		<title>imported&gt;Tomchiukc：​/* 和Ruby比較 */ 那是微笑吧？不用全型</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Raku&amp;diff=225684&amp;oldid=prev"/>
		<updated>2025-10-16T21:11:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;和Ruby比較：​&lt;/span&gt; 那是微笑吧？不用全型&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT|G2=FL}}&lt;br /&gt;
{{Infobox programming language&lt;br /&gt;
| title				=&lt;br /&gt;
| name				= Raku&lt;br /&gt;
| logo				= [[Image:Camelia.svg|250px]]&lt;br /&gt;
| logo size			= 250px&lt;br /&gt;
| logo alt			= Raku吉祥物Camelia&lt;br /&gt;
| logo caption		= Raku吉祥物Camelia&amp;lt;ref name=&amp;quot;camelia&amp;quot; /&amp;gt;&lt;br /&gt;
| paradigm			= [[多重编程范式]]&lt;br /&gt;
| family			= [[Perl]]&lt;br /&gt;
| designer			= [[拉里·沃尔]]&lt;br /&gt;
| developer			= Raku community&lt;br /&gt;
| latest release version	= v6.d “Diwali”&lt;br /&gt;
| latest release date		= {{Start date and age|2018|11|05|mf=yes}}&lt;br /&gt;
| latest preview version	=&lt;br /&gt;
| latest preview date		=&lt;br /&gt;
| year				= {{Start date and age|2015|12|25|mf=yes}}&lt;br /&gt;
| typing			= 動態、漸進式&lt;br /&gt;
| scope				=&lt;br /&gt;
| implementations		= {{tsl|en|Rakudo Perl 6|Rakudo}}&lt;br /&gt;
| dialects			=&lt;br /&gt;
| influenced by			= [[Haskell]]&amp;lt;ref&amp;gt;{{cite web|url=http://www.perlfoundation.org/perl6/index.cgi?glossary_of_terms_and_jargon|title=Glossary of Terms and Jargon|date=2011-02-28|work=Perl Foundation Perl 6 Wiki|publisher=[[The Perl Foundation]]|accessdate=2015-02-08|archive-date=2012-01-21|archive-url=https://web.archive.org/web/20120121145808/http://www.perlfoundation.org/perl6/index.cgi?glossary_of_terms_and_jargon|dead-url=yes}}&amp;lt;/ref&amp;gt;、[[JavaScript]]、[[Perl|Perl 5]]、[[Ruby]]、[[Smalltalk]]&lt;br /&gt;
| influenced			= [[Perl|Perl 5]]&amp;lt;ref name=&amp;quot;Tang2010&amp;quot;&amp;gt;{{cite web|url=http://pugs.blogs.com/pugs/2010/04/how-to-implement-perl-6-in-10.html|title=How to Implement Perl 6 in &amp;#039;10|date=2010-04-21|author=唐鳳, a.k.a. [[Audrey Tang]]|accessdate=2018-12-17|archive-date=2018-12-18|archive-url=https://web.archive.org/web/20181218102039/https://pugs.blogs.com/pugs/2010/04/how-to-implement-perl-6-in-10.html|dead-url=no}}&amp;lt;/ref&amp;gt;、[[Haskell]]&amp;lt;ref name=&amp;quot;Tang2010&amp;quot; /&amp;gt;、AntLang&lt;br /&gt;
| platform			=&lt;br /&gt;
| operating system		= [[跨平台]]&lt;br /&gt;
| license			= [[GNU通用公共许可证]]&amp;lt;br&amp;gt;[[艺术许可协议#Artistic_License_2.0|艺术许可协议 2.0]]&lt;br /&gt;
| file extensions		= .raku, .p6, .pl6, .pm6, .pod6 &amp;lt;ref&amp;gt;{{Cite web |url=https://docs.perl6.org/language/modules#Basic_structure |title=存档副本 |accessdate=2018-12-17 |archive-date=2018-11-10 |archive-url=https://web.archive.org/web/20181110040537/https://docs.perl6.org/language/modules#Basic_structure |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| website			= {{URL|raku.org}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Raku&amp;#039;&amp;#039;&amp;#039;，原名Perl 6，系[[perl程式語言]]家族的成員之一，通用程序设计语言，支持[[多重编程范式]]，[[渐进式类型]]。Raku主要設計者為[[拉里·沃尔]]。作為Perl的後繼者，在2000年開始發展，由于接續在Perl 5之後，称为&amp;#039;&amp;#039;&amp;#039;Perl 6&amp;#039;&amp;#039;&amp;#039;，在2019年10月更名为Raku&amp;lt;ref name=&amp;quot;renamed&amp;quot;&amp;gt;{{cite web|url=https://lwn.net/Articles/802329/|title=Perl 6 renamed to Raku|publisher=[[LWN.net]]|date=15 October 2019|accessdate=16 October 2019|archive-date=2019-10-17|archive-url=https://web.archive.org/web/20191017155422/https://lwn.net/Articles/802329/|dead-url=no}}&amp;lt;/ref&amp;gt;。Raku语言在语法與Perl 5不同，被视为一种新的[[程式語言]]，但提供Perl 5的兼容模式。&lt;br /&gt;
&lt;br /&gt;
Raku拥有丰富的现代程序语言特征，重新定义了[[正規表達式]]和增加[[函數式程式語言]]的特征，成为可演化的语言。为保证Raku和[[Perl]]社区的持续稳定发展，Raku[[编译器]]使用Raku来重写。为保证Perl语言原有[[函式庫]]的重用，[[编译器]]提供同Perl 5语言的兼容模式。&lt;br /&gt;
&lt;br /&gt;
[[2010年7月]]，[[Rakudo]]的Rakudo Star，作为主要版本的[[试验品]]发布。这一发布让人们有一个可实用的编译器，方便编写程序和反映需求（Perl6的规范尚未冻结，以期根据人们的使用体验以及编译器的实现等来增补某些特性）。&lt;br /&gt;
&lt;br /&gt;
==歷史==&lt;br /&gt;
在2000年時，拉里·沃尔宣告開始開發Perl 6。最初的目標，是移除Perl因為歷史因素而保留下來的一些功能，旨在“容易的事应当容易处理，难事应当变得容易，不可能的事应当办成”，开始面向所有人编制[[RFC]]。总共产生了361份RFC。RFC完成后，交由拉里·沃尔审阅和分类。&lt;br /&gt;
&lt;br /&gt;
Raku开发使用三种开发方式。第一，通过[[IRC]]的#raku频道。第二，Perl基金会的电子邮件列表。第三，寄存在Git上的源代码。&lt;br /&gt;
&lt;br /&gt;
2019年10月更名為Raku。&lt;br /&gt;
&lt;br /&gt;
==代码范例==&lt;br /&gt;
===Hello World===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;raku&amp;quot;&amp;gt;&lt;br /&gt;
raku -e &amp;quot;say &amp;#039;Hello, world&amp;#039;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 输出一百万以内的所有素数 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl6&amp;quot;&amp;gt;&lt;br /&gt;
raku -e &amp;#039;put (^1_000_000).grep: *.is-prime&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 阶乘 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=raku&amp;gt;&lt;br /&gt;
# 递归实现 &lt;br /&gt;
sub factorial1(Int $n --&amp;gt; Int) {&lt;br /&gt;
    return $n ?? $n * factorial1($n-1) !! 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# 直接使用运算符&lt;br /&gt;
sub factorial2(Int $n --&amp;gt; Int) {&lt;br /&gt;
    return [*] 1..$n;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# 惰性计算&lt;br /&gt;
sub factorial3(Int $n --&amp;gt; Int) {&lt;br /&gt;
    my $fac := 1, { $^a * (1 + ++$) } ... *;&lt;br /&gt;
    $fac[$n-1];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===巨集===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;raku&amp;quot;&amp;gt;&lt;br /&gt;
 macro hello($what) {&lt;br /&gt;
   quasi { say &amp;quot;Hello { {{{$what}}} }&amp;quot; };&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==和Ruby比較==&lt;br /&gt;
一般都是認為[[Ruby]] vs. [[Python]]（可能是因為同樣採取縮排的設計），但是就一些相關的討論和訪談，Ruby vs. Perl 6（&amp;lt;small&amp;gt;Raku&amp;lt;/small&amp;gt;）的可能性反而是最大的。&amp;lt;ref&amp;gt;{{Cite web |url=http://www.openfoundry.org/index.php?option=com_content&amp;amp;Itemid=1&amp;amp;id=188 |title=日本的Perl社群名人——宮川達彥專訪。|access-date=2020-01-21 |archive-url=https://web.archive.org/web/20181110120441/https://www.openfoundry.org/index.php?option=com_content&amp;amp;Itemid=1&amp;amp;id=188 |archive-date=2018-11-10 |dead-url=yes }}&amp;lt;/ref&amp;gt; Ruby的創始者[[松本行弘]]（Matz）在接受[[O&amp;#039;Reilly]]的訪-{}-問時&amp;lt;ref&amp;gt;{{Cite web |url=http://www.linuxforum.net/forum/showflat.php?Cat=&amp;amp;Board=python&amp;amp;Number=567208&amp;amp;page=18&amp;amp;view=collapsed&amp;amp;sb=5&amp;amp;o=&amp;amp;fpart= |title=訪問Matz。 |accessdate=2007-07-12 |archive-date=2020-04-09 |archive-url=https://web.archive.org/web/20200409031916/http://www.linuxforum.net/forum/showflat.php?Cat=&amp;amp;Board=python&amp;amp;Number=567208&amp;amp;page=18&amp;amp;view=collapsed&amp;amp;sb=5&amp;amp;o=&amp;amp;fpart= |dead-url=yes }}&amp;lt;/ref&amp;gt;，也提到「Ruby借用了很多Perl的東西……，Python遠比Perl要少……」。從Ruby的命名也可以看出Matz遠大的企圖心：「Pearl（珍珠）是六月的[[誕生石]]&amp;lt;ref&amp;gt;Larry Wall在命名Perl时，曾经想过使用Pearl作为名称，但发现已经有Pearl这个语言了，于是就成为Perl。&amp;lt;/ref&amp;gt;，而Ruby是七月的誕生石，我認為Ruby這個名字作為Perl之後的一門語言的名字真是再恰當不過了。」&amp;lt;ref&amp;gt;{{Cite web |url=http://blog.csdn.net/eiffelqiu/archive/2004/02/04/19869.aspx |title=O&amp;#039;Reilly訪問Matz。 |accessdate=2007-07-19 |archive-date=2009-07-28 |archive-url=https://web.archive.org/web/20090728061954/http://blog.csdn.net/eiffelqiu/archive/2004/02/04/19869.aspx |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perl之父[[拉里·沃尔]]在《&amp;#039;&amp;#039;Larry Wall On Perl, Religion, and……&amp;#039;&amp;#039;》&amp;lt;ref&amp;gt;{{Cite web |url=http://www.perlchina.org/archive/archive.php?action=archive&amp;amp;page=39 |title=Larry Wall On Perl, Religion, and…… |accessdate=2007-07-12 |archive-date=2007-07-29 |archive-url=https://web.archive.org/web/20070729075423/http://www.perlchina.org/archive/archive.php?action=archive&amp;amp;page=39 |dead-url=no }}&amp;lt;/ref&amp;gt; 一文中表示：「很多方面上我還是很喜歡Ruby的，這是因為那些部分是從Perl借過去的。:-)」、「我還喜歡Ruby的C&amp;lt;*&amp;gt;一元星號操作符，所以我把它加到Perl 6裡面。」&lt;br /&gt;
&lt;br /&gt;
但是[[拉里·沃爾]]在文中也說：「Ruby的主要問題在於它的最少驚訝原則可能讓人誤入歧途，就好像隱藏式詞法範圍。問題在於減少誰的驚訝？[[專家]]和初學者對不同的事情驚訝。從一個小程序寫成大程序的人和從開始就寫大程序的人可能對不同的事情感到驚訝。」&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{Reflist|30em|refs=&lt;br /&gt;
&amp;lt;ref name=&amp;quot;camelia&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
  |url=http://www.infoworld.com/d/open-source/perl-creator-hints-imminent-release-long-awaited-perl-6-445&lt;br /&gt;
  |title=Perl creator hints at imminent release of long-awaited Perl 6&lt;br /&gt;
  |first=Joab&lt;br /&gt;
  |last=Jackson&lt;br /&gt;
  |publisher=IDG News Service&lt;br /&gt;
  |date=23 July 2010&lt;br /&gt;
  |accessdate=2015-02-08&lt;br /&gt;
  |archive-date=2014-07-31&lt;br /&gt;
  |archive-url=https://web.archive.org/web/20140731203238/http://www.infoworld.com/d/open-source/perl-creator-hints-imminent-release-long-awaited-perl-6-445&lt;br /&gt;
  |dead-url=no&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
=== 規格 ===&lt;br /&gt;
* [http://dev.perl.org/perl6/doc/synopsis.html Synopses - The evolving summary of each Apocalypse, updated regularly]{{Wayback|url=http://dev.perl.org/perl6/doc/synopsis.html |date=20070314224537 }}，這些文件被視為Raku正式的語言架構。&lt;br /&gt;
* [http://dev.perl.org/perl6/doc/exegesis.html Exegeses - Further explanation of each Apocalypse with code samples]{{Wayback|url=http://dev.perl.org/perl6/doc/exegesis.html |date=20070314224108 }}&lt;br /&gt;
* [http://dev.perl.org/perl6/doc/apocalypse.html Apocalypses - The first-pass drafts from Larry Wall]{{Wayback|url=http://dev.perl.org/perl6/doc/apocalypse.html |date=20070314224620 }}&lt;br /&gt;
* [https://web.archive.org/web/20070315214145/http://feather.perl6.nl/syn/ Official Raku Documentation] Raku的正式說明文件。&lt;br /&gt;
&lt;br /&gt;
=== 實做 ===&lt;br /&gt;
* [https://raku.org/ Raku]{{Wayback|url=https://raku.org/ |date=20200218053722 }}，Raku語言的主要資訊站台。&lt;br /&gt;
* [https://www.rakudo.org/ Rakudo]{{Wayback|url=https://www.rakudo.org/ |date=20200220000539 }}，目前最完整的實作（Activated）&lt;br /&gt;
* [http://fglock.github.io/Perlito/ Perlito]{{Wayback|url=http://fglock.github.io/Perlito/ |date=20200218041307 }}，以 Perl、Raku、Javascript 語言實做的 Perl / Raku Compiler&lt;br /&gt;
* [http://www.pugscode.org/ Pugs]{{Wayback|url=http://www.pugscode.org/ |date=20150214140229 }}，以[[Haskell]]實做Raku的計畫。（Deactivated）&lt;br /&gt;
* [http://www.parrot.org/ Parrot]{{Wayback|url=http://www.parrot.org/ |date=20120516114613 }}，[[Parrot]]的主站。&lt;br /&gt;
* [http://search.cpan.org/dist/v6-alpha/ v6.pm]{{Wayback|url=http://search.cpan.org/dist/v6-alpha/ |date=20070301173232 }}，包裝為 Perl 模組的，&lt;br /&gt;
&lt;br /&gt;
=== 其他 ===&lt;br /&gt;
*[https://web.archive.org/web/20070306200607/http://planetsix.perl.org/ Planet Perl 6]&lt;br /&gt;
*[https://web.archive.org/web/20070707003455/http://perlcabal.org/syn/Differences.html Perl 6::Perl 5::Differences]&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
{{程序设计语言}}&lt;br /&gt;
[[Category:程序设计语言]]&lt;br /&gt;
[[Category:Perl]]&lt;br /&gt;
[[Category:自由編譯器與直譯器]]&lt;br /&gt;
[[Category:2015年建立的程式語言]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Tomchiukc</name></author>
	</entry>
</feed>