この文書はプログラミング言語Rakuの全体像を素早くつかんでもらうことを目的として書かれたものです。 まだRakuを触ったことのない読者の方々が、ここからRakuをはじめてもらうことを狙いとしています。
この文書はプログラミング言語Rakuの全体像を素早くつかんでもらうことを目的として書かれたものです。 まだRakuを触ったことのない読者の方々が、ここからRakuをはじめてもらうことを狙いとしています。
この記事は Perl 6 Advent Calendar 2015 の1日目です。 Perl 6 は、2015年のクリスマスにリリースされることになっており、我々としてはそれを待ち受ける必要があると考えました。 Perl6 がリリースされた暁には、いろいろ遊ぼうかなという気持ちをみなさんお持ちだと思います。 Perl6 には夢が詰まっており、様々な機能が含まれている夢の言語です。 そういった、夢の機能については今後、クリスマスまでの間に、語られていきますが、本稿では、現実的な話をします。 今年のクリスマスに Perl6 がリリースされるぞ、という宣言がでたわけですが、そうなってくると、Perl6 をクリスマスから早速遊びたいなと思うわけですよね。 そして、私は web engineer なので、 Perl6 が出たら早速 web application を書きたいと思うわけです。 しかし、
Perl には x 演算子があり、x 3 といった具合に繰り返し回数を付ける事で連続した文字列を簡単に作り出すことが出来る。 say 1 x 3; # 111 say "foo" x 3; # foofoofoo これは Perl5 でもお馴染み。しかし Perl6 の Range は凄い。 say 1 xx 3; # (1 1 1) say "foo" xx 3; # (foo foo foo) 連続した配列要素が作り出せる。それどころか無限リストが作り出せる。 say 1 xx *; # (...) say "foo" xx *; # (...) もちろん無限数列も作れる。 (1 .. *)[^10].perl.say; # (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) fibonacci 数列もこんなに簡単。 (1, 1, *+* ...^ *)[^100].per
本記事はサクッと perl6 (rakudo) が動く環境を作って,ズバッと Hello world してみるというやつです. 早速行ってみましょう. 1. rakudobrew をインストールする rakudobrew をインストールします rakudobrew というのは perl5 で言うところの perlbrew/plenv,ruby で言うところの rvm/rbenv のようなものです. なぜこうした物を使うかというと,perl6 は開発が非常に活発な言語であるためにデイリーで変更が入っていて,直っていたり壊れていたりするためです. 2015年10月現在,perl6 をやるときは rakudo と MoarVM は HEAD を使うというのが紳士の嗜みとなっています *1. というわけで入れましょう. git clone https://github.com/tadzik/rak
All slide content and descriptions are owned by their creators.
Perl6 には Grammar という機能があるのですが、これがまた凄いんです。スキャナとトークナイザと処理系が引っ付いている様な物がデフォルトで提供されているんです。 通常はこれらが別の機能として提供されており、プログラミング言語を実装する過程でデータの受け渡しがシームレスではなく、実装を変えたりするのが非常に面倒だったりします。しかしこれが Perl6 という一つの処理系の中で提供されてしまっている為、本来であれば数百ステップくらい掛かってしまう俺言語のコードが50ステップ程度で書けてしまいます。 use v6; grammar SyoboiScript::Grammar { token num { <[0..9]>+ } token ident { <[a..z]>+ } token op { '+' || '-' || '*' || '/' } token exp { <iden
Larry Wallが今年のクリスマスにリリースすると言って以来、 一部において異常な盛り上がりを見せるPerl6であるが、 この度Slack Perl6 Evalbotが完成した。 https://github.com/shoichikaji/slack-perl6-evalbot Perl6は現在、リリースに向けてdeprecatedな関数の削除は当たり前として、 Great List Refactor(リスト周りの大規模なリファクタ)、 Array.pushの挙動変更などちょー攻撃的な変更の嵐である。 そんな中をサバイブするためにはcronでPerl6を毎日buildするのは至極当然である。 またチャットにおいては、円滑なコミュニケーションをとるためにperl6 codeをその場でevalできることが必須であると言えよう。 Slack Perl6 Evalbotはhttp://soo
ロンドンで話を聞いたInline::Perl5の印象が強すぎてうっかり存在を忘れていたのですが、特に複雑なことをするのでなければ、最新のRakudo Starに同梱されているDBIishというモジュールを使うと、Perl5のDBIと同じような書き方ができるようになっています。たとえばSQLiteのデータベースを扱うのであれば、Rakudo StarとSQLiteのライブラリ(libsqlite3的なもの)をインストールしたあと、こんなコードを書けばOK。 use v6; use DBIish; my $dbh = DBIish.connect("SQLite", :database, :RaiseError); $dbh.do("CREATE TABLE IF NOT EXISTS foo (id, text)"); my $sth = $dbh.prepare("INSERT INTO
自分の感想ブログでFuture Perlのトーク聞いて思ったこととか書いてたんですが、Seisの話はそういえば全然していなかったなーって思って、じゃあ実際にどうなのかって思って、おもむろにmetacpanでSeisって打ったら上がっていたので勢いでcpanmしてみました。 で、どうなったかというと。 [- o -] $ cpanm Seis --> Working on Seis Fetching http://www.cpan.org/authors/id/T/TO/TOKUHIROM/Seis-0.12.tar.gz ... OK Configuring Seis-0.12 ... OK Needs perl 5.018000, you have 5.016003 ! Installing the dependencies failed: Installed version (5.01
たとえばこんな。 Rakudo Star ではどれも実装済み。今すぐ使えます。 強化された正規表現 Perl 6 の公式なパーサ自体も Perl 6 の正規表現で書かれています。 ……は置いといて。10行ちょっとで CSV をパースする正規表現が書ける。クォートされた値にも複数行にまたがる値にも対応。 # CSV クラスは以下のものを修正して使っています # http://github.com/masak/csv/blob/master/lib/Text/CSV.pm # 正規表現をまとめた grammar (クラスの一種) grammar CSV { regex TOP { ^ <line> ** \n <empty_line>? $ } regex line { <value> ** ',' } regex value { | <pure_text> | \s* \" <quoted_
10年の間出る出ると言われていた Perl 6 がようやく(部分的に)リリースされました。やったね。 やったねついでに Rakudo Star で Perl 6 を始める人のためのガイドを書きます。インストールから Perl 6 言語の簡単な紹介、有用なリンクなど。 インストール http://github.com/rakudo/star/downloads から rakudo-star-2010.07.tar.gz をダウンロード。 $ tar xf rakudo-star-2010.07.tar.gz $ cd rakudo-star-2010.07 $ perl Configure.pl --gen-parrot $ make $ make install で OK 。 実行 対話的シェルで遊べる。 $ ./perl6 > say "Hello, Perl 6!"; > Hello,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く