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で告知します
- 作者: Damian Conway,クイープ
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/08/24
- メディア: 大型本
- 購入: 11人 クリック: 153回
- この商品を含むブログ (155件) を見る
以下,思い出しつつメモ
5.9 配列のインデックス〜5章終わり
- 5.9 配列のインデックス
- 負のインデックスを使うのは良いプラクティス
- 「意外と使う場面はない」ような
- 最後のインデックス($#array_name)を短く書くような表記はない
- 5.10 スライス
- スライスも本ではよく見るけど「意外と使わない」
- 負数の含まれる範囲はやっかい
- 5.11 スライスのレイアウト
- 5.12 スライスのファクタリング
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); }
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