Kansai.pm 第5回Perlベストプラクティス勉強会

Kansai.pm 第5回Perlベストプラクティス勉強会が2007年07月05日(木)に行われました.勉強会の開始は19:15ぐらい,終了はちょっと押して21:15ぐらいでした.今回は新たな参加者1名を含む,8名の参加です

今回はP.94「5.9 配列のインデックス」〜P.112「6.7 必要な添え字」まででした.Perl以外の言語をメインにしている方がいらっしゃると,話の幅が広がるのを感じることができました.他言語メインの方も積極的に参加してもらえると嬉しいです

次回は7月12日(木)にCATWALKさんで開催予定です.改めてKansai.pmのサイトとMLで告知します

Perlベストプラクティス

Perlベストプラクティス

以下,思い出しつつメモ

5.9 配列のインデックス〜5章終わり

  • 5.9 配列のインデックス
    • 負のインデックスを使うのは良いプラクティス
    • 「意外と使う場面はない」ような
    • 最後のインデックス($#array_name)を短く書くような表記はない
  • 5.10 スライス
    • スライスも本ではよく見るけど「意外と使わない」
    • 負数の含まれる範囲はやっかい
  • 5.11 スライスのレイアウト
  • 5.12 スライスのファクタリング
    • keysとvaluesは同じ順番で帰ってくるのはわかるがコードを見ると不安になる
    • 最後のコードの例のstatはシステムコール.「Perlの組み込み関数の半分ぐらいはシステムコールではないか?」
    • 訳文:テーブル指向→原文:table driven→テーブルドリブンで良いじゃないか?
      • PBPは微妙な訳も多い

6章最初〜6.4 否定制御文

  • 6 制御構造
  • 6.1 ifブロック
    • ポストフィックス形式のifは使用しない
    • あとで変更する可能性があるなら変えるな
  • 6.2 ポストフィックスセレクタ
  • 6.3 ほかのポストフィックス修飾子
  • 6.4 否定制御文
    • 連鎖否定は非常に読みにくく,間違えやすい

6.5 Cスタイルのループ〜6.7 必要な添え字

  • 6.5 Cスタイルのループ
    • Perlではほとんど使われない
    • 「CではSALE:のコードのような例はよく見る」
  • 6.6 不要な添え字
    • ループ内では配列やハッシュの値を得るために添え字を使用しない
    • valuesから返される値は,ハッシュの実際の値に対するエイリアスのリスト
    • ハッシュエントリを削除したい場合はハッシュスライスを使え
  • 6.7 必要な添え字
    • インデックスを知りたい場合はもちろんあるが,その際にインデックスを元に値を取得するのは1回だけにする
    • その際値を変更したい場合はalias関数を使う
    • eachはコピーが行われるので変更には使えないが,ふつうに代入されているので間違えることはないような気がする

インデックスと値を取得する場合の他言語での書き方

D言語

foreachでふたつ引数を与えるとインデックスと値を取得できる

foreach (int i, int value; a)
{
    printf("a[%d] = %d\n", i, value);
}
PHP

foreachでasと=>を使って,インデックスと値を取得する

foreach($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}
Ruby1.9

Enumerator#with_indexを使って取得
http://www.oreillynet.com/ruby/blog/2007/06/on_the_horizon_ten_things_i_li.html

[1,2,3,4,5,6].map.with_index {|x,i|[2,5].include?(i) ? x : x*2}	#=> [2, 4, 3, 8, 10, 6]

}

その他雑談ネタ

ネコ演算子
6^..^9 #7,8
6..^9  #6,7,8
6^..9  #7,8,9
Perl6はもともとエイプリルフールネタ

聞き違いやも.Perl6のVMであるParrotの名前の元になっている.

Parrot
2001年のエイプリルフールに用意された「ネタ」言語。 Perl作者のラリー・ウォール氏とグイド氏が共同で取り組む新言語、と発表され、O'Reillyのページに詳細な記事が載る程の仕込み様だったため、 ニュースサイトを中心に被害者が続出した。
http://slashdot.jp/developers/article.pl?sid=04/07/24/1020202

るびま読書会

参加者の情報で,明日(いまはもう今日ですが)るびま勉強会が行われるようです.というかその方がるびま勉強会の主催者なんですがw

●日時
7月6日(金) 19:00〜21:30

18:30開場で、読書会は19時にはじめます。

●場所
大阪市北区
扇町インキュベーションプラザ(Mebic扇町
会議室2

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43662