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

Like this? Share it with your network

Share

2013 02-23 Kansai.pm #15 LT

  • 1,018 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,018
On Slideshare
579
From Embeds
439
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 439

http://blog.iss.ms 438
http://webcache.googleusercontent.com 1

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