Language Update Perl (小飼弾さんの代理) 竹迫 良範 LLイベント の歴史を 振り返る 2006/06/30 2 LL Saturday (2003) 2006/06/30 3 LL Weekend (2004) 2006/06/30 4 LLDN (2005) 実態:スクリプト言語ヲタの祭り 2006/06/30 5 2006/06/30 6 2006/06/30 7 さん キタ━━(゚∀゚)━━ッ!! 2006/06/30 8 2006/06/30 9 ここで、会場の 皆様に 質問 2006/06/30 10 2006/06/30 11 require Dan::Kogai もちろん! require Dan::Kogai ↓ require jcode.pl ? Perl4 Perl5 ↓ jcode.pl Jcode.pm use (J|En)code; 2006/06/30 13 use Dan::Kogai 弾さんを使おう キミならどう書く 2.0 前哨戦 Round 1 お題 「100までの素数を列挙せよ」 Brainf*ckで100までの素数を列挙してみるテスト 2006/06/30 16 2006/06/30 17 Excel VBAで素数 featuring イルカ http://d.hatena.ne.jp/kkkkkkkk/20060620/p1 冴子先生 2006/06/30 18 もちろんイルカくんも・・・ 2006/06/30 19 2006/06/30 20 勝手に添削コーナー 雑誌やブログの記事に書かれている Perlのコードを弾さんが添削してくれる すばらしい連載企画 2006/06/30 21 プロダクションスクリプトに use strict; をつけないと、 左手のサイコレーターが TBをあびせるぞ! http://blog.livedoor.jp/dankogai/archives/50449002.html 2006/06/30 22 【ITレスラー戦国伝】タブとスペース抗争の巻 登場人物 サイボウズ科学戦隊所属のITレスラー 【燕(つばくろ)のKazuho】 無所属のITレスラー【ストロング弾】 謎のITレスラー【ムッシュ石垣】 Six ApartのITレスラー【南斗せきむら】 LD所属のITレスラー 【キャプター疾風(はやて)】 iY所属のITレスラー【魔人イヤプー】 http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/knifestyle/20060430/p1 2006/06/30 23 【ITレスラー戦国伝】タブとスペース抗争の巻 スペース派閥 C 系の言語 は 4 、Ruby は 2 いや、Ruby は 3 スペでしょ タブ(萌ディタ流派) タブで揃えて、萌ディタでタブ幅を動的に切り替え 保存時に変換 君たちは、patchのことをきれいさぱーり忘れている。 人にpatchを送るときには、必ず perl -i.bak -ple 's{^(\t+)}{q( ) x (length($1)*4)}e' old.pl としていただきたい。 秀丸エディタで、CTRL+A → ALT+E → V → S とす るとタブをスペースに変換(約0.2秒) そのタブAcme::Tabifyでよくね?Plaggerでもいいけど 2006/06/30 24 添削希望のコードをブログで公開するメソッド http://rebecca.ac/milano/mt/archives/001383.html 2006/06/30 25 Perlのスローガン TMTOWTDI There's more than one way to do it. 2006/06/30 26 Danさんの場合 TMDTWTDI There's more Dan the way to do it. 2006/06/30 27 結論 Danさんの実装も 快く受け入れるのが Perlの文化 2006/06/30 28 2006/06/30 29 Language Update Perl Shibuya.pm 竹迫 良範 Perl6 の開発状況 ←いまここ 2006/06/30 31 Pugsの登場(2005年) 多態型 存在型 帰納的 λλ 2006/06/30 λλ λλ 32 Haskell 2006/06/30 33 Perl 6 で 何が変わるの? 素朴な疑問 5秒でわかる Perl6 メソッド呼び出しを . で書けるようになった Perl5 Perl6 $obj->method(); $obj.method(); → これで Perl も立派なOO言語の仲間入り! 2006/06/30 35 めでたし、めでたし 2006/06/30 36 Perl 5 6 の Update について もうちょっと詳しく・・・ Perl6で失ったもの ~後方互換性~ 文字列の連結は .(ドット)→ ~(チルダ)に Perl5 Perl6 # メソッド呼び出し $obj->method(); # メソッド呼び出し $obj.method(); my $a = “A"; sub func { return "x"; } my $a = “A"; sub func { return "x"; } # 文字列の連結 my $b = $a.func(); # 文字列の連結 my $b = $a~func(); 2006/06/30 38 配列とハッシュのアクセス方法が変更 はじめての人にもわかりやすく 変数のプレフィクス $@% ルールが変更 Perl5 Perl6 my @array = (1, 2, 3); my %hash = ('a'=> 1); my @array = (1, 2, 3); my %hash = ('a'=> 1); # 配列のメンバにアクセス my $x = $array[0]; # 配列のメンバにアクセス my $x = @array[0]; # ハッシュのメンバにアクセス my $y = $hash{'a'} # ハッシュのメンバにアクセス my $y = %hash{'a'} 2006/06/30 39 Piping operators(<==, ==>) Perl6 @result = map { floor($^x / 2) } grep { /^ \d+ $/ } @data; @result <== map { floor($^x / 2) } <== grep { /^ \d+ $/ } <== @data; @data ==> grep { /^ \d+ $/ } ==> map { floor($^x / 2) } ==> @result; 2006/06/30 40 括弧省略 if, for, while, do ブロックでの(括弧省略) キータイプの量が少なくなった Perl5 Perl6 if ($a eq $b) { print "a=b\n"; } if $a eq $b { say "a=b"; } while ($i > 0) { $i--; } while $i > 0 { $i--; } 2006/06/30 41 Neko operator(ネコ演算子) Damian Conway氏が OSCON2005 で発音 末尾を含まない「..^」 先頭を含まない「^..」 先頭と末尾を含まない「^..^」 Perl6 my @a = (1..^5); # (1,2,3,4) my @b = (1^..5); # (2,3,4,5) my @c = (1^..^5); # (2,3,4) http://www.rubyist.net/~matz/20050803.html 2006/06/30 42 ネコ演算子って・・・ちょwおまwww ネコ耳モード♪ ^..^ Illustration by SUGIMOTO Yoshiaki June 25, 2005 http://catzpaw.net/~www/gal/sugz042b.html 2006/06/30 43 CPAN Recently Update 2006/06/30 45 ■ 2006年: 現在2941個のモジュールがリリース http://cpants.perl.org/graphs.html 2006/06/30 46 Moose.pm クラス定義をスマートに Perl6 (Pugs) 2006/06/30 48 Perl5 (Moose.pm) 2006/06/30 49 Moose.pm サブクラスの作成 (派生クラスの継承) Perl6 (Pugs) 2006/06/30 51 Perl5 (Moose.pm) 2006/06/30 52 Perl 5.9.x 開発版 Perl 5.9.3 の新機能 2006/06/30 54 // 演算子 (errキーワード) 左辺が undef のときのみ右辺を評価 Perl5 でありがちなデフォルト値バグを回避 0(ゼロ) の扱いで失敗 それぞれ || → or, // → err に対応 Perl5 Perl6 $num = shift @ARGV || 1; $num = shift @ARGS // 1; $bar = func() or die; $bar = func() err die; 2006/06/30 55 Perl 5.9.4 Module::Load が標準添付 実行時に $module を遅延ロードしたい use Module::Load; my $module = 'Data:Dumper'; load Data::Dumper; load 'Data::Dumper'; load $module; 2006/06/30 56 Module::Load vs. UNIVERSAL::require 実行時に $module を遅延ロードしたい eval “require $module”; UNIVERSAL::require を使うと $module->require; 2006/06/30 57 Catalyst で使われている 2006/06/30 58 Catalyst – Web Framework 2006/06/30 59 Sledge ライブドア社の Webフレームワーク 2006/06/30 61 TripletaiL ユミルリンク社の Webフレームワーク 2006/06/30 63 速報 2006/06/30 64 東京IT新聞 2006年8月17日 2006/06/30 66 ランキング Perl の Web アプリケーションフレームワーク 1. 2. 3. 4. 5. 6. 7. 8. http://lislog.livedoor.com/r/136 2006/06/30 Catalyst Boofy Sledge CGI::Application Soozy Maypole Jifty Mason 67 どう見ても サブテカです。 本当に(ry 2006/06/30 68 Jifty 注目のWebフレームワーク http://jifty.org/ Jifty の特徴 DRY (Don't Repeat Yourself) Full-stack Continuations Form-based dispatch Perl CPAN A Pony ※ あの Audrey Tang も開発に参加 2006/06/30 70 2006/06/30 71 2006/06/30 72 詳しくは… 2006/06/30 73 2006年8月25日発売 【書名】 まるごとPerl! Vol.1 【定価】 1,995円(本体1,900円+税) 【著者】 小飼 弾、宮川達彦、伊藤直也、 川合孝典、水野貴明、加藤 敦、 石垣憲一、栗原由樹、まかまか、 池邉智洋、ma.la、竹迫良範、ささ だこういち、可知 豊、秋山隆道、 久保元治、滝澤隆史、歌代和正 2006/06/30 74 2006/06/30 75 2006/06/30 76 ソーシャル家計簿サイト http://www.3zai.com/ CGI::Applicationで構築 秋のリニュでCatalystに 2006/06/30 powered by Perl 77 Perlフレームワーク 国内実績、既に多数ということで (わざわざ出場しなくても) Perl 最強 ! (≠災凶) 2006/06/30 79 ご清聴ありがとうございました 2006/06/30 80
© Copyright 2024 ExpyDoc