0
「範囲表記」な整数を   配列で扱う 2013-02-23 Kansai.pm #15       岩田 享 / issm
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
おまえだれよ?岩田 享 / issm(いわた)http://blog.iss.ms/@issm, qr/issmx{,2}/Perl / CoffeeScript / 自転車  嗜む程度に個人事業  とある「商品」を販売 → 発注 → 発送管理 ...
名古屋の方からきました(Nagoya.pm というものも存在しているらしいですよ)                            2013-02-23 Kansai.pm #15
アジェンダ自己紹介Textile記法Text::Textile拡張性について応用まとめ                 2013-02-23 Kansai.pm #15
本題     2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
Array::RangedInt               2013-02-23 Kansai.pm #15
とあるアプリケーションで何番が選択されているかを保持選択されている番号のボタンをアクティヴに                 2013-02-23 Kansai.pm #15
Array::RangedInt               2013-02-23 Kansai.pm #15
とあるアプリケーションでカテゴリに属するすべての番号が選択→「このカテゴリのすべてを選択」ボタンをアクティヴに                    2013-02-23 Kansai.pm #15
Array::RangedInt               2013-02-23 Kansai.pm #15
とあるアプリケーションで商品の選択解除でボタンを非アクティヴに→「このカテゴリのすべてを選択」ボタンを非アクティヴに                 2013-02-23 Kansai.pm #15
Array::RangedInt               2013-02-23 Kansai.pm #15
とあるアプリケーションで単品ごとの「選択」ボタンと「すべてを選択」ボタンとの整合性確保が必要 リスト・ハッシュでがんばろうとしたけど, カオス発生 「整数の範囲」を扱いたい                 2013-02-23 Kansai.p...
そのへんをなんとかするモジュールを書いてみた          2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
Array::RangedInthttps://github.com/issm/p5-Array-RangedInt「『範囲表記』な整数」を要素にもち,ごにょごにょするためのモジュール要素の例 1 2-5 -5:-2 ( -5--2 でも可) ...
Array::RangedInt隣接する整数群は「範囲」としてまとめられる (1, 2, 3, 4, 6, 8, 9, 10) -> (‘1-4’, 6, ’8-10’)「範囲」を扱う特性上... 必ず順序付けされている 重複した値を持たない ...
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
コンストラクタ ->new( @args ) / ->parse( $text )$ari = Array::RangedInt->new( 1, 3, ‘5-10’ )$ari = Array::RangedInt->parse( ‘1,3,...
要素を追加する ->add(@args)$ari->add( 2, 15, ’21-25’ )            1, 2, 3, 5-10, 15, 21-25                                       ...
要素を追加する ->add(@args)$ari->add( 2, 15, ’21-25’ )            1, 2, 3, 5-10, 15, 21-25              1-3, 5-10, 15, 21-25     ...
要素を削除する ->remove(@args)$ari->remove( 3, 8, ‘18-22’ )           1-3,   5-10,    15,   21-25             3      8      18-20...
要素を削除する ->remove(@args)$ari->remove( 3, 8, ‘18-22’ )           1-3,   5-10,    15,   21-25             3      8      18-20...
shift! ->shift()$ari->shift()           1-2, 5-7, 9-10, 15, 23-25                                       2013-02-23 Kansai....
shift! ->shift()$ari->shift()           1-2, 5-7, 9-10, 15, 23-25                     got: 1             2, 5-7, 9-10, 15,...
pop! ->pop()$ari->pop()              2, 5-7, 9-10, 15, 23-25                                        2013-02-23 Kansai.pm #15
pop! ->pop()$ari->pop()              2, 5-7, 9-10, 15, 23-25                     got: 25              2, 5-7, 9-10, 15, 23...
含んでいる? ->includes( @args )$ari->includes( 2 )   # 1$ari->includes( 2, 5, 7 ) # 1$ari->includes( 2, 3, 4 )   # 0$ari->inclu...
配列のサイズを取得する ->size()$ari->size()       # 9               2, 5-7, 9-10, 15, 23-24               1     3   2   1    2       ...
文字列として ->stringify()$ari->stringify()           ’2,5-7,9-10,15,23-24’                                   2013-02-23 Kansai....
配列として ->dump()my @a = $ari->dump()   # as arraymy $a = $ari->dump()   # as arrayref       ( 2, 5 .. 7, 9 .. 10, 15, 23 .. ...
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ                   2013-02-23 Kansai.pm #15
まとめArray::RangedInt ってモジュールを書いた 「範囲表記」な整数をそのまま扱う 範囲をともなう整数の集合の扱いを多少ラ クに とても素直なコーディング   工夫の余地大ありTODO overload 使ってより配列っぽくできる...
ご静聴ありがとうございました!https://github.com/issm/p5-Array-RangedInt                                    2013-02-23 Kansai.pm #15
Q?     2013-02-23 Kansai.pm #15
Upcoming SlideShare
Loading in...5
×

2013 02-23 Kansai.pm #15 LT

822

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
822
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "2013 02-23 Kansai.pm #15 LT"

  1. 1. 「範囲表記」な整数を 配列で扱う 2013-02-23 Kansai.pm #15 岩田 享 / issm
  2. 2. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  3. 3. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  4. 4. おまえだれよ?岩田 享 / issm(いわた)http://blog.iss.ms/@issm, qr/issmx{,2}/Perl / CoffeeScript / 自転車 嗜む程度に個人事業 とある「商品」を販売 → 発注 → 発送管理 などするためのシステムを開発するなど 2013-02-23 Kansai.pm #15
  5. 5. 名古屋の方からきました(Nagoya.pm というものも存在しているらしいですよ) 2013-02-23 Kansai.pm #15
  6. 6. アジェンダ自己紹介Textile記法Text::Textile拡張性について応用まとめ 2013-02-23 Kansai.pm #15
  7. 7. 本題 2013-02-23 Kansai.pm #15
  8. 8. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  9. 9. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  10. 10. Array::RangedInt 2013-02-23 Kansai.pm #15
  11. 11. とあるアプリケーションで何番が選択されているかを保持選択されている番号のボタンをアクティヴに 2013-02-23 Kansai.pm #15
  12. 12. Array::RangedInt 2013-02-23 Kansai.pm #15
  13. 13. とあるアプリケーションでカテゴリに属するすべての番号が選択→「このカテゴリのすべてを選択」ボタンをアクティヴに 2013-02-23 Kansai.pm #15
  14. 14. Array::RangedInt 2013-02-23 Kansai.pm #15
  15. 15. とあるアプリケーションで商品の選択解除でボタンを非アクティヴに→「このカテゴリのすべてを選択」ボタンを非アクティヴに 2013-02-23 Kansai.pm #15
  16. 16. Array::RangedInt 2013-02-23 Kansai.pm #15
  17. 17. とあるアプリケーションで単品ごとの「選択」ボタンと「すべてを選択」ボタンとの整合性確保が必要 リスト・ハッシュでがんばろうとしたけど, カオス発生 「整数の範囲」を扱いたい 2013-02-23 Kansai.pm #15
  18. 18. そのへんをなんとかするモジュールを書いてみた 2013-02-23 Kansai.pm #15
  19. 19. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  20. 20. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  21. 21. Array::RangedInthttps://github.com/issm/p5-Array-RangedInt「『範囲表記』な整数」を要素にもち,ごにょごにょするためのモジュール要素の例 1 2-5 -5:-2 ( -5--2 でも可) 2013-02-23 Kansai.pm #15
  22. 22. Array::RangedInt隣接する整数群は「範囲」としてまとめられる (1, 2, 3, 4, 6, 8, 9, 10) -> (‘1-4’, 6, ’8-10’)「範囲」を扱う特性上... 必ず順序付けされている 重複した値を持たない 2013-02-23 Kansai.pm #15
  23. 23. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  24. 24. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  25. 25. コンストラクタ ->new( @args ) / ->parse( $text )$ari = Array::RangedInt->new( 1, 3, ‘5-10’ )$ari = Array::RangedInt->parse( ‘1,3,5-10’ ) 1, 3, 5-10 2013-02-23 Kansai.pm #15
  26. 26. 要素を追加する ->add(@args)$ari->add( 2, 15, ’21-25’ ) 1, 2, 3, 5-10, 15, 21-25 2013-02-23 Kansai.pm #15
  27. 27. 要素を追加する ->add(@args)$ari->add( 2, 15, ’21-25’ ) 1, 2, 3, 5-10, 15, 21-25 1-3, 5-10, 15, 21-25 2013-02-23 Kansai.pm #15
  28. 28. 要素を削除する ->remove(@args)$ari->remove( 3, 8, ‘18-22’ ) 1-3, 5-10, 15, 21-25 3 8 18-20,21-22 2013-02-23 Kansai.pm #15
  29. 29. 要素を削除する ->remove(@args)$ari->remove( 3, 8, ‘18-22’ ) 1-3, 5-10, 15, 21-25 3 8 18-20,21-22 1-2, 5-7, 9-10, 15, 23-25 2013-02-23 Kansai.pm #15
  30. 30. shift! ->shift()$ari->shift() 1-2, 5-7, 9-10, 15, 23-25 2013-02-23 Kansai.pm #15
  31. 31. shift! ->shift()$ari->shift() 1-2, 5-7, 9-10, 15, 23-25 got: 1 2, 5-7, 9-10, 15, 23-25 2013-02-23 Kansai.pm #15
  32. 32. pop! ->pop()$ari->pop() 2, 5-7, 9-10, 15, 23-25 2013-02-23 Kansai.pm #15
  33. 33. pop! ->pop()$ari->pop() 2, 5-7, 9-10, 15, 23-25 got: 25 2, 5-7, 9-10, 15, 23-24 2013-02-23 Kansai.pm #15
  34. 34. 含んでいる? ->includes( @args )$ari->includes( 2 ) # 1$ari->includes( 2, 5, 7 ) # 1$ari->includes( 2, 3, 4 ) # 0$ari->includes( ‘5-7’, ’23-24’ ) # 1$ari->includes( ‘5-7’, ’20-25’ ) # 0 2, 5-7, 9-10, 15, 23-24 2013-02-23 Kansai.pm #15
  35. 35. 配列のサイズを取得する ->size()$ari->size() # 9 2, 5-7, 9-10, 15, 23-24 1 3 2 1 2 2013-02-23 Kansai.pm #15
  36. 36. 文字列として ->stringify()$ari->stringify() ’2,5-7,9-10,15,23-24’ 2013-02-23 Kansai.pm #15
  37. 37. 配列として ->dump()my @a = $ari->dump() # as arraymy $a = $ari->dump() # as arrayref ( 2, 5 .. 7, 9 .. 10, 15, 23 .. 24 ) or [ 2, 5 .. 7, 9 .. 10, 15, 23 .. 24 ] 2013-02-23 Kansai.pm #15
  38. 38. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  39. 39. アジェンダ自己紹介背景Array::RangedIntSYNOPSISまとめ 2013-02-23 Kansai.pm #15
  40. 40. まとめArray::RangedInt ってモジュールを書いた 「範囲表記」な整数をそのまま扱う 範囲をともなう整数の集合の扱いを多少ラ クに とても素直なコーディング 工夫の余地大ありTODO overload 使ってより配列っぽくできる? メモリサイズや速度の比較とか 2013-02-23 Kansai.pm #15
  41. 41. ご静聴ありがとうございました!https://github.com/issm/p5-Array-RangedInt 2013-02-23 Kansai.pm #15
  42. 42. Q? 2013-02-23 Kansai.pm #15
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×