Your SlideShare is downloading. ×
2013 02-23 Kansai.pm #15 LT
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2013 02-23 Kansai.pm #15 LT

795

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
795
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×