SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Measure 単位付き数値ライブラリ
Report
Kenta Murata
Follow
CRO at Xica Co., Ltd.
Aug. 23, 2008
•
0 likes
•
1,461 views
1
of
15
Measure 単位付き数値ライブラリ
Aug. 23, 2008
•
0 likes
•
1,461 views
Download Now
Download to read offline
Report
Technology
Business
単位付き数値ライブラリ Measure の紹介
Kenta Murata
Follow
CRO at Xica Co., Ltd.
Recommended
5分で分かる Measure
Kenta Murata
1.9K views
•
28 slides
Prml 2_3_1
brownbro
575 views
•
6 slides
Ruby で高速なプログラムを書く
mametter
34.2K views
•
71 slides
Float is Legacy
Kenta Murata
3.8K views
•
79 slides
Introduction to ATDD with Cucumber and RSpec
Kenta Murata
14.1K views
•
48 slides
The world without the literal notation for floating-point numbers
Kenta Murata
1.2K views
•
38 slides
More Related Content
More from Kenta Murata
関数型プログラミングの世界
Kenta Murata
3.7K views
•
64 slides
Let's begin Behavior Driven Development using RSpec
Kenta Murata
1.6K views
•
87 slides
Rubyをたのしくするために私が考えていること
Kenta Murata
1.9K views
•
97 slides
Ruby の懸案事項
Kenta Murata
2.6K views
•
38 slides
5分弱で分かる量子ビット
Kenta Murata
6.7K views
•
32 slides
Rubykaigi2010mrkn bigdecimal
Kenta Murata
1K views
•
52 slides
More from Kenta Murata
(13)
関数型プログラミングの世界
Kenta Murata
•
3.7K views
Let's begin Behavior Driven Development using RSpec
Kenta Murata
•
1.6K views
Rubyをたのしくするために私が考えていること
Kenta Murata
•
1.9K views
Ruby の懸案事項
Kenta Murata
•
2.6K views
5分弱で分かる量子ビット
Kenta Murata
•
6.7K views
Rubykaigi2010mrkn bigdecimal
Kenta Murata
•
1K views
Ruby における絵文字エンコーディング間の相互変換ダイアグラム (案)
Kenta Murata
•
800 views
校内勉強会のススメ An encouragement to hold workshops In your school
Kenta Murata
•
1.6K views
Ruby の標準乱数生成器とその改善案
Kenta Murata
•
4K views
情報学特論#02
Kenta Murata
•
876 views
情報学特論#01
Kenta Murata
•
816 views
北海道関数型言語勉強会@札幌#2のお知らせ
Kenta Murata
•
769 views
Ruby 拡張モジュール入門
Kenta Murata
•
3.6K views
Recently uploaded
指側面を入力インタフェース化するリング型デバイス
sugiuralab
5 views
•
1 slide
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
442 views
•
44 slides
画像生成AIの問題点
iPride Co., Ltd.
127 views
•
9 slides
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
83 views
•
1 slide
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
39 views
•
44 slides
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
226 views
•
38 slides
Recently uploaded
(11)
指側面を入力インタフェース化するリング型デバイス
sugiuralab
•
5 views
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
•
442 views
画像生成AIの問題点
iPride Co., Ltd.
•
127 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
83 views
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
•
39 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
226 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
93 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
73 views
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
250 views
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
93 views
NoSQL/SQLデュアルインターフェースを備えた IoT向けデータベースGridDB - 強化された時系列データ管理・検索機能について -
griddb
•
7 views
Measure 単位付き数値ライブラリ
1.
Ruby 勉強会@札幌‒09
2008‒08‒23 Measure 単位付き数値ライブラリ 村田 賢太 Ruby 札幌
2.
単位付き数値とは?
2
3.
単位付き数値とは? 173 [cm]
63 [kg] 376.730 [Ω] 101,325 [Pa] 1.602 10‒19 [C] 2
4.
Measure ライブラリ 単位付き数値クラスを提供
異なる単位間の変換を定義可能 単位付き数値の簡易記法を提供 3
5.
インストール方法 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# 4
6.
使い方 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]" 5
7.
単位変換 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]" 6
8.
マルチホップ変換 [in]
2.54倍 [cm] 100倍 [m] 1000倍 [mm] 7
9.
マルチホップ変換 [in]
2.54倍 [cm] 100分の1 2.54分の1 100倍 [m] 1000倍 1000倍 [mm] 7
10.
マルチホップ変換
[in] 2.54倍 [cm] 100分の1 2.54分の1 100倍 [m] 1000倍 連結な単位間での 1000倍 相互変換の経路を [mm] 幅優先探索で発見 7
11.
簡易記法 irb(main):013:0> require 'measure/support' irb(main):014:0>
Measure.form { 1.m - 1.cm }.to_s => "0.99 [m]" 8
12.
定義済み単位
measure/length を require すると次の単 位が定義され相互変換可能な状態になる m, meter in, inch pt, point, dp, didot_point cm, centi_meter ft, feet bp, big_point mm, milli_meter yd, yard pc, pica km, kilo_meter um, micro_meter nm, nano_meter 9
13.
未対応な機能 多次元単位 たとえば
1 [kg m / s2] など 簡易記法なら 1.kg.m.s(‒2) かな? スケーリング以外の単位変換 [ C] = 5 ([ F] ‒ 32) / 9 など 開発版では対応済み 10
14.
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]" 11
15.
Future works スケーリング以外の変換を実装したバージョン
をリリースする 定義済み単位を増やす 多次元単位への対応 12