Successfully reported this slideshow.
Your SlideShare is downloading. ×

5分で分かる Measure

Ad

札幌 Ruby 会議‒01; 2008‒10‒25




5分で分かる
Measure
村田 賢太
Kenta Murata

Ad

やるおは偉いから
その日のうちに宿題を
片付けてしまうんだお!

Ad

本日の宿題
自分の身長を
測ってみよう!

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 28 Ad
1 of 28 Ad
Advertisement

More Related Content

Advertisement

5分で分かる Measure

  1. 1. 札幌 Ruby 会議‒01; 2008‒10‒25 5分で分かる Measure 村田 賢太 Kenta Murata
  2. 2. やるおは偉いから その日のうちに宿題を 片付けてしまうんだお!
  3. 3. 本日の宿題 自分の身長を 測ってみよう!
  4. 4. 身長を測ってみよう!
  5. 5. だっておwwwwwww バカにするのもいいかげ んにして欲しいおwww
  6. 6. やる夫の身長は11文字 放尿は気持ちイイお!
  7. 7. もう宿題終わったお! 今日も YourAVHost で スッキリするお! エロギーク様々だおっ
  8. 8. やる夫くん、気を付けて
  9. 9. だ、誰だお?
  10. 10. やる夫くん、問題を良く見て
  11. 11. 本日の宿題 自分の身長を 測ってみよう! 何フィートかな?
  12. 12. フィートってなんだお・・・ さっきは書いてなかった 気がするお・・・
  13. 13. 11文字が何フィートになる か分かんないお どうしたらいいお?
  14. 14. Measure
  15. 15. Measure ライブラリ ‣ 単位付き数値クラスを提供 ‣ 異なる単位間の変換を定義可能 ‣ 単位付き数値の簡易記法を提供 18
  16. 16. 単位付き数値とは? ‣ 173 [cm] ‣ 63 [kg] ‣ 376.730 [Ω] ‣ 101,325 [Pa] ‣ 1.602 10 [C] ‒19 19
  17. 17. インストール方法 mrkn-macbook:~ root# gem install -r measure Bulk updating Gem source index for: http://gems.rubyforge.org Successfully installed measure-0.1.0 1 gem installed Installing ri documentation for measure-0.1.0... Installing RDoc documentation for measure-0.1.0... mrkn-macbook:~ root# 20
  18. 18. 使い方 mrkn-macbook:~ root# irb irb(main):001:0> require 'measure' irb(main):002:0> Measure.define_unit :m, :length irb(main):003:0> Measure.define_unit :cm, :length irb(main):004:0> Measure(1, :m) => #<Measure:0x57d8c @unit=:m, @value=1> irb(main):005:0> Measure(1, :cm).to_s => "1 [cm]" 21
  19. 19. 単位変換 irb(main):006:0> Measure.define_conversion :m, :cm => 100 irb(main):007:0> (Measure(1, :m) + Measure(1, :cm)).to_s => "1.01 [m]" irb(main):008:0> Measure.define_unit :in, :length irb(main):009:0> Measure.define_conversion :in, :cm => 2.54 irb(main):010:0> Measure.define_unit :mm, :length irb(main):011:0> Measure.define_conversion :m, :mm => 1000 irb(main):012:0> (Measure(210, :mm) - 2*Measure(1, :in)).to_s => "159.2 [mm]" 22
  20. 20. マルチホップ変換 [in] 2.54倍 [cm] 100分の1 2.54分の1 100倍 [m] 1000倍 連結な単位間での 1000倍 相互変換の経路を [mm] 幅優先探索で発見 23
  21. 21. 簡易記法 irb(main):013:0> require 'measure/support' irb(main):014:0> Measure.form { 1.m - 1.cm }.to_s => "0.99 [m]" 24
  22. 22. Proc による単位変換 irb(main):015:0> Measure.define_unit :deg_c, :temperature irb(main):016:0> Measure.define_unit :deg_f, :temperature irb(main):017:0> Measure.define_conversion :deg_c, :deg_f => lambda {|x| 9.0*x/5.0 + 32 } irb(main):018:0> Measure.define_conversion :deg_f, :deg_c => lambda {|x| 5.0*(x - 32)/9.0 } irb(main):019:0> Measure.form { -40.deg_c.as_deg_f }.to_s => "-40.0 [deg_f]" 25
  23. 23. 定義済み単位 ‣ measure/length を require すると次の単位 が定義され相互変換可能な状態になる m, meter pt, point, dp, didot_point in, inch cm, centi_meter bp, big_point ft, feet mm, milli_meter pc, pica yd, yard km, kilo_meter aa, angstrom um, micro_meter au, AU, astronomical_unit nm, nano_meter ly, light_year 26
  24. 24. Future works ‣ 定義済み単位を増やす ‣ 【急募】地域で定義が違う場合の対応方法 ‣ 多次元単位への対応 ‣ 1 [kg m / s ] 1.kg.m.s(–2) 2 ‣ 複数の単位変換系をサポート ‣ スレッドセーフ化 27
  25. 25. 糸冬 了 2008年10月25日 札幌Ruby会議にて

×