Perl6

Perl6のGrammarでサーバログをパースする

何がしたいか 某編集部で運用中のマインクラフトサーバのログを解析して、プレイ時間の一番長い廃人を算出したい。折角なのでPerl6でやりましょうという企画です。lldecadeでPerl6の話が少し出たようなので、それに乗っかろうという感じですね。 はじめに Gr…

Merry Christmas!

この記事はPerl6 Advent Calender 2011、25日目の記事です。 ようやくここまで続いてきたAdvent Calendarも今日で終わりです。最終日は、今まで解説してきた文法を使って適当なプログラムを書いてみます。 (某学類誌に掲載した記事とあんまり変わらない内容…

左辺値代入

この記事はPerl6 Advent Calendar 2011、22日目の記事です。 さて、記事が落ちたのも二回目ですが、まぁ何とかなるでしょう。明日はクリスマスなので奇跡が起きるに違いない。 今日紹介するのは左辺値代入です。 左辺値代入とは 読者の方が全員ご存知かどう…

ワンライナーのすすめ

この記事はPerl6 Advent Calendar 2011の20日目です。 残念ながら昨日の記事は落ちてしまいましたが、気にせず進めましょう。明日の記事を2本書けば問題無く25日まで進めますね! ここまで私の担当では基本的な文法を紹介してきましたが、今回は少し趣向を変…

Junction

この記事は、Perl6 Advent Calendar 2011の17日目です。 さて、今日はPerl6の持ち味の一つであるJunctionの紹介をしようと思います。 Introduction 少し唐突ですが、「変数iが1か2なら〜」という条件分岐、皆さんはどう書くでしょうか?たとえばPerlで素直に…

関数を作る

この記事はPerl6 Advent Calendar 2011の16日目です。 さて、いわゆる構造化プログラミングでは外せない関数ですが、Perl6では幾つか書き方がありますので紹介しましょう。 sub Perl5でもおなじみ、subキーワードを用いた関数定義の方法です。Perl5とは違う…

数列演算子

この記事は、Perl6 Advent Calendar 2011の11日目です。 今日はオブジェクトの話から少し離れて、数列演算子を紹介しましょう。 infix:は、数列を生成する演算子です。単純に数字をおいた場合、第一オペランドから第二オペランドまで1ずつ変化する数列を返し…

メタメソッド

この記事はPerl6 Advent Calendar 2011の10日目です。 内容的には前回の「クラスとオブジェクト」の続きのような感じなので、この記事を読まれる前に、そちらを先に読む事をお勧めします。さて、前回の記事ではPerl6のオブジェクトがメタクラスによって管理…

クラスとオブジェクト

この記事はPerl6 Advent Calendar 2011の6日目です。 前々回のuasiさんの記事が中々濃い内容だったので、補足としてPerl6のオブジェクトモデルについて簡単に解説しようと思います。 前提 Perl6の世界は(一部のnon-objectなプリミティブ型を除いて)オブジェ…

基本的な制御構文の紹介

この記事はPerl6 Advent Calendar 2011の3日目です。 今年は誰も名乗りを上げないようなので、私が勝手にPerl6 Advent Calendarを立ててしまいました。まだまだ参加者募集中なので、我こそは!という方は是非ATNDに登録をお願いします。 前回はぜっぱち(@Zep…

Perl6でマンデルブロ集合さんを描く

某複素関数論のレポートで「マンデルブロ集合さんを描け」というのがあったので、折角だからとPerl6で書いてみました。当然モジュールなんて有るわけないので、フルスクラッチですね、大した量ではありませんが。コードは以下の通り。実行結果 少なくともRak…

例のお題をPerl6で解いてみる

Link> お題:文字列を先頭から見て同じところまで除去 - No Programming, No Life という企画に実解析さんが参加しておられたので、私もPerl6で書いてみようかなと。 Link> お題:文字列を先頭から見て同じところまで除去 - はっ!透ける!―黙々とHaskellを…

Twitterのライブラリを書きたい

まだPerl6実装のTwitterクライアントが存在しないと聞いて、ゴリゴリ実装中です。完成までにまだまだ時間は掛りそうですが、完成したらGitHubで公開しようと思ってます。書いてる上で思った事、詰まった事を何点か。 モジュール無い はい、致命的ですね。OAu…

3日目 - ファイル操作

この記事は”Perl6 Advent Calendar”をエスパー和訳したものです。大意は合っていると思われるものの、内容は保証しません。 <原文> 3日目 - ファイル操作 (原文/Moritz) Day 3 – File operations By Moritz ディレクトリ Directories (Perl5の)opendirなどと…

2日目 - コマンドラインとMAIN関数の交流

この記事は"Perl6 Advent Calendar"をエスパー和訳したものです。大意は合っていると思われるものの、内容は保証しません。 <原文> 二日目 - コマンドラインとMAIN関数の交流 (原文/Moritz) Day 2 – Interacting with the command line with MAIN subs By Mo…

Perl6でMMDを使ってみた

Perl6では関数の定義時にSignatureを詳しく宣言できるようになりました。また、変数の宣言に静的型付け的な要素が取り入れられたため、引数リストの数だけでなく型の指定が可能です。また、引数だけでなく返り値の型も宣言できるようになりました。他にもオ…