Raku - 維基百科,自由的百科全書
文章推薦指數: 80 %
Raku,原名Perl 6,系perl程式語言家族的成員之一,通用程式設計語言,支援多重編程範式,漸進式類型。
Raku主要設計者為拉里·沃爾。
作為Perl的後繼者,在2000年開始 ...
Raku
維基百科,自由的百科全書
跳至導覽
跳至搜尋
RakuRaku吉祥物Camelia[1]編程範型多重編程範式語言家族Perl設計者拉里·沃爾實作者Rakucommunity面市時間2015年12月25日,6年前(2015-12-25)穩定版本v6.d「Diwali」
(2018年11月5日,3年前(2018-11-05)
)
型態系統動態、漸進式作業系統跨平台授權條款GNU通用公眾授權條款藝術授權條款2.0副檔名.raku,.p6,.pl6,.pm6,.pod6[2]網站raku.org主要實作產品Rakudo(英語:RakudoPerl6)啟發語言Haskell[3]、JavaScript、Perl5、Ruby、Smalltalk影響語言Perl5[4]、Haskell[4]、AntLang
Raku,原名Perl6,系perl程式語言家族的成員之一,通用程式設計語言,支援多重編程範式,漸進式類型。
Raku主要設計者為拉里·沃爾。
作為Perl的後繼者,在2000年開始發展,由於接續在Perl5之後,稱為Perl6,在2019年10月更名為Raku[5]。
Raku語言在語法與Perl5不同,被視為一種新的程式語言,但提供Perl5的相容模式。
Raku擁有豐富的現代程式語言特徵,重新定義了正規表達式和增加函數式程式語言的特徵,成為可演化的語言。
為保證Raku和Perl社群的持續穩定發展,Raku編譯器使用Raku來重寫。
為保證Perl語言原有函式庫的重用,編譯器提供同Perl5語言的相容模式。
2010年7月,Rakudo的RakudoStar,作為主要版本的試驗品釋出。
這一釋出讓人們有一個可實用的編譯器,方便編寫程式和反映需求(Perl6的規範尚未凍結,以期根據人們的使用體驗以及編譯器的實現等來增補某些特性)。
目次
1歷史
2代碼範例
2.1HelloWorld
2.2輸出一百萬以內的所有素數
2.3階乘
2.4巨集
3和Ruby比較
4參考文獻
5外部連結
5.1規格
5.2實做
5.3其他
歷史[編輯]
在2000年時,拉里·沃爾宣告開始開發Perl6。
最初的目標,是移除Perl因為歷史因素而保留下來的一些功能,旨在「容易的事應當容易處理,難事應當變得容易,不可能的事應當辦成」,開始面向所有人編制RFC。
總共產生了361份RFC。
RFC完成後,交由拉里·沃爾審閱和分類。
Raku開發使用三種開發方式。
第一,通過IRC的#raku頻道。
第二,Perl基金會的電子郵寄清單。
第三,代管在Git上的原始碼。
2019年10月更名為Raku。
代碼範例[編輯]
HelloWorld[編輯]
raku-e"say'Hello,world'"
輸出一百萬以內的所有素數[編輯]
raku-e'put(^1_000_000).grep:*.is-prime'
階乘[編輯]
#递归实现
subfactorial1(Int$n-->Int){
return$n ??$n*factorial1($n-1) !!1;
}
#直接使用运算符
subfactorial2(Int$n-->Int){
return[*]1..$n;
}
#惰性计算
subfactorial3(Int$n-->Int){
my$fac :=1,{$^a*(1+++$)}...*;
$fac[$n-1];
}
巨集[編輯]
macrohello($what){
quasi{say"Hello{{{{$what}}}}"};
}
和Ruby比較[編輯]
一般都是認為Rubyvs.Python(可能是因為同樣採取縮排的設計),但是就一些相關的討論和訪談,Rubyvs.Perl6(Raku)的可能性反而是最大的。
[6]Ruby的創始者松本行弘(Matz)在接受O'Reilly的訪問時[7],也提到「Ruby借用了很多Perl的東西……,Python遠比Perl要少……」。
從Ruby的命名也可以看出Matz遠大的企圖心:「Pearl(珍珠)是六月的誕生石[8],而Ruby是七月的誕生石,我認為Ruby這個名字作為Perl之後的一門語言的名字真是再恰當不過了。
」[9]
Perl之父拉里·沃爾在《LarryWallOnPerl,Religion,and……》[10]一文中表示:「很多方面上我還是很喜歡Ruby的,這是因為那些部分是從Perl借過去的。
:-)」、「我還喜歡Ruby的C一元星號運算子,所以我把它加到Perl6裡面。
」
但是拉里·沃爾在文中也說:「Ruby的主要問題在於它的最少驚訝原則可能讓人誤入歧途,就好像隱藏式詞法範圍。
問題在於減少誰的驚訝?專家和初學者對不同的事情驚訝。
從一個小程式寫成大程式的人和從開始就寫大程式的人可能對不同的事情感到驚訝。
」
參考文獻[編輯]
^Jackson,Joab.Perlcreatorhintsatimminentreleaseoflong-awaitedPerl6.IDGNewsService.23July2010[2015-02-08].
^存档副本.[2018-12-17].(原始內容存檔於2018-11-10).
^GlossaryofTermsandJargon.PerlFoundationPerl6Wiki.ThePerlFoundation.2011-02-28[2015-02-08].(原始內容存檔於2012-01-21).
^4.04.1唐鳳,a.k.a.AudreyTang.HowtoImplementPerl6in'10.2010-04-21[2018-12-17].(原始內容存檔於2018-12-18).
^Perl6renamedtoRaku.LWN.net.15October2019[16October2019].(原始內容存檔於2019-10-17).
^日本的Perl社群名人——宮川達彥專訪。
.[2020-01-21].(原始內容存檔於2018-11-10).
^訪問Matz。
.[2007-07-12].(原始內容存檔於2020-04-09).
^LarryWall在命名Perl時,曾經想過使用Pearl作為名稱,但發現已經有Pearl這個語言了,於是就成為Perl。
^O'Reilly訪問Matz。
.[2007-07-19].(原始內容存檔於2009-07-28).
^LarryWallOnPerl,Religion,and…….[2007-07-12].(原始內容存檔於2007-07-29).
外部連結[編輯]
規格[編輯]
Synopses-TheevolvingsummaryofeachApocalypse,updatedregularly(頁面存檔備份,存於網際網路檔案館),這些檔案被視為Raku正式的語言架構。
Exegeses-FurtherexplanationofeachApocalypsewithcodesamples(頁面存檔備份,存於網際網路檔案館)
Apocalypses-Thefirst-passdraftsfromLarryWall(頁面存檔備份,存於網際網路檔案館)
OfficialRakuDocumentationRaku的正式說明文件。
實做[編輯]
Raku(頁面存檔備份,存於網際網路檔案館),Raku語言的主要資訊站台。
Rakudo(頁面存檔備份,存於網際網路檔案館),目前最完整的實作(Activated)
Perlito(頁面存檔備份,存於網際網路檔案館),以Perl、Raku、Javascript語言實做的Perl/RakuCompiler
Pugs(頁面存檔備份,存於網際網路檔案館),以Haskell實做Raku的計畫。
(Deactivated)
Parrot(頁面存檔備份,存於網際網路檔案館),Parrot的主站。
v6.pm(頁面存檔備份,存於網際網路檔案館),包裝為Perl模組的,
其他[編輯]
PlanetPerl6
Perl6::Perl5::Differences
閱論編程式設計語言按範式程序式
FORTRAN
COBOL
ALGOL60
BASIC
GW-BASIC
PL/I
MUMPS(英語:MUMPS)
ALGOL68
Forth
Pascal
TurboPascal
C
Modula-2
Ada83
occam
Oberon
Go
Zig
Carbon
物件導向
Simula67
Smalltalk
C++
Objective-C
Eiffel
ObjectPascal
Delphi
Self
CLOS
VisualBasic
Gambas
Ada95
Java
C#
Vala
Crystal(英語:Crystal(programminglanguage))
多範式
Modula-3
Dylan
Python
Lua
JavaScript
Ruby
REBOL
Red(英語:Red(programminglanguage))
D
Factor
Scala
F#
F*
Haxe
Nim
Rust
Dart
Julia
Swift
Ballerina(英語:Ballerina(programminglanguage))
函數式
LISP
Scheme
CommonLisp
Racket
Clojure
Logo
APL/J
ML
StandardML
OCaml
Erlang
Elixir
Haskell
Curry
SAC
Agda
Idris
Pure(英語:Pure(programminglanguage))
Cuneiform
邏輯式
Prolog
Datalog
Mercury
AnsProlog
手稿語言動態語言
SNOBOL
Icon
REXX
Perl
Raku
Tcl/Tk
CLOS
newLISP
Python
Lua
Ruby
PHP
Hack
VBScript
Io
Julia
Shell語言
Unixshell
sh
csh
tcsh
ksh
bash
ash
zsh
fish
sed
AWK
PowerShell
ECMA-262
ECMAScript
JavaScript
JScript
Node.js/Deno
CoffeeScript
TypeScript
Elm
PureScript
Reason
特定平台.NET
C#
C++/CLI
F#
PowerShell
VB.NET
SmallBasic
JVM
Java
AspectJ(英語:AspectJ)
JSP
Scala
Clojure
Groovy
Kotlin
特定領域科學計算
Speakeasy(英語:Speakeasy(computationalenvironment))
IDL
GDL
Maxima
Maple
MATLAB
Octave
Scilab
Wolfram
R
SageMath
Julia
GPU計算
GLSL
HLSL
OpenCL
CUDA
Futhark
資料查詢
SQL
PL/SQL
T-SQL
SQL/PSM(英語:SQL/PSM)
xBase(英語:xBase)
XPath
XQuery(英語:XQuery)
rasql(英語:rasdaman#RasterQueryLanguage)
GraphQL
視覺化
Simulink
LabVIEW
Orange(英語:Orange(software))
KNIME(英語:KNIME)
Scratch
Snap!
PowerFx
傳媒設計
SuperCollider
PureData
Processing
ChucK
其它
組合語言
make
PostScript
XSLT
WebAssembly
目錄
列表
歷史
比較(英語:Comparisonofprogramminglanguages)
時間線(英語:Timelineofprogramminglanguages)
取自「https://zh.wikipedia.org/w/index.php?title=Raku&oldid=73116343」
分類:程序設計語言Perl自由編譯器與直譯器2015年建立的程式語言隱藏分類:存在語法高亮錯誤的頁面使用過時圖像語法的頁面
導覽選單
個人工具
沒有登入討論貢獻建立帳號登入
命名空間
條目討論
臺灣正體
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
查看
閱讀編輯檢視歷史
更多
搜尋
導航
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
工具
連結至此的頁面相關變更上傳檔案特殊頁面靜態連結頁面資訊引用此頁面維基數據項目
列印/匯出
下載為PDF可列印版
其他語言
БългарскиČeštinaDeutschEnglishEspañolSuomiFrançaisBahasaIndonesiaItaliano日本語한국어NederlandsNorskbokmålРусскийTürkçeУкраїнська
編輯連結
延伸文章資訊
- 1【直擊Modern Web 2015】Perl 6 核心貢獻者唐鳳談開源之道
Perl6核心貢獻者唐鳳表示,現在要在網路上找正確答案,需要的不是提出問題,而是先給一個很爛的答案,就會有眾多高手跳出來熱烈討論並糾正你。
- 2唐鳳 - 臺灣網絡百科- Fandom
唐鳳(Audrey Tang,原名唐宗漢(autrijus),1981年—),台灣的自由軟體程式員,Pugs專案的發起人,領導Haskell和Perl社群協力開發Perl 6語言。 唐鳳也致力於...
- 3唐鳳的檔案- Hahow 好學校
唐鳳,臺灣的自由軟體程式設計師及政治人物,現任行政院政務委員,曾致力於多項專案的開發維護,是Haskell 和Perl 社群領導者,也是g0v 零時政府核心成員。
- 4Raku - 維基百科,自由的百科全書
Raku,原名Perl 6,系perl程式語言家族的成員之一,通用程式設計語言,支援多重編程範式,漸進式類型。Raku主要設計者為拉里·沃爾。作為Perl的後繼者,在2000年開始 ...
- 5唐鳳 - 咱砸雜
內容寫的專有名詞看不太懂...總之是個程式高高手轉載本站文章請注明,轉載自:扶凱[http://www.php-oa.com] 上次2009 Beijing Perl Workshop(bj.