RakuRakuのロゴ
パラダイムオブジェクト指向プログラミング、命令型プログラミング、関数型プログラミング
Raku(旧称: Perl 6)は、ラリー・ウォールにより設計されたオブジェクト指向スクリプト言語である。
Rakuは、2000年にPerlの次期メジャーバージョンとして設計が始められ、2015年12月25日にPerl 6として正式安定版がリリースされた。しかし、言語仕様は従来のPerlと互換性がなく、既存のPerlのソフトウェアをPerl 6用に「アップグレード」するのは極めて困難である。したがって現在はPerl 5とPerl 6は別の言語であると考えられており、Perl 6はPerl 5の次期バージョンではないとされている。換言すれば、Perl 6はPerl 5から移行対象とはみなされていない。そして2019年10月にRakuへ改名することが決定した[2]。
Rakuは言語仕様のみを指し、その処理系は別のプロジェクトとして管理されている。これは、言語仕様の設計と、処理系の(設計及び)実装とが渾然一体としたプロジェクトとして管理されている、バージョン5までのPerlや、他の多くの立ち位置が近い言語(及びその処理系)とは異なっている。2015年12月25日に公式の言語仕様の正式安定版がリリースされた。公式の処理系としてはRakudoがあり、2010年8月に最初の「使用可能な」バージョンがリリースされた。Haskellで書かれたPugsは活発ではなく[3]、もはや歴史的な実装とされている。
Perl 5は動的型付け言語であったのに対し、Rakuは静的な型指定も行える言語となった(動的な型付けも可能)。また、Rakuでは仮引数定義も可能となっている(Perl 5でも可能ではあったが不完全であった)。さらに、Perl 5の様に展開を行うことも可能であり、例えばJavaであればReflectionクラスを必要とする仮引数の取得をいわゆるマジックを用いずとも可能な設計となっている。
RakuではPerl 5と比較してさらに柔軟かつ強力な記法を可能としている。例えば、配列要素毎の演算や、Lisp等に代表されるポーランド記法も可能にするなどPerl 5をより一層強力にした記述である。 またはsay "Hello, world!"; またはprint "Hello, world!\n"
Hello world"Hello, world!".say
出典^ 出典URL: https://github.com/perl6/roast/blob/master/docs/announce/6.d.md#changelog
^ liztormato (2019年10月15日). “2019.41 New Wineskins”. p6weekly.wordpress.com. 2019年10月26日閲覧。
^ “Feature comparison of Perl 6 compilers”. perl6.org. 2019年10月26日閲覧。
関連項目
Parrot
外部リンク
公式ウェブサイト
Official Perl 6 Documentation
Perl 6 and Parrot links
p6weekly
pl6anet.org
Rakudo.org
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}
表示
編集
表
話
編
歴
Perl
言語
Perl
Raku
人物
ラリー・ウォール
唐鳳
実装
Perl
perl
ActivePerl
Raku
Rakudo
Parrot
MoarVM
Pugs
フレームワーク
Catalyst
Mojolicious
Moose(英語版)
その他
CPAN
TMTOWTDI(英語版)
mod perl(英語版)
Plagger
Perl Mongers
カテゴリ
コモンズ
ウィキブックス
Portal:コンピュータ