Raku - 維基百科,自由的百科全書

文章推薦指數: 80 %
投票人數:10人

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Українська 編輯連結



請為這篇文章評分?