DraftPadに数式を書くと計算してくれるアシスト(改良版)
DraftPadに電卓機能を追加するアシスト(超進化版) - W&R : Jazzと読書の日々前に書いた電卓機能アシストですが、関数をもう少し自由に使いたいと思いました。数式で書くと答が出てくる。エディタだから式の再利用も簡単だし、変数も使えるといいな、ってことで。前のでも使えたけど、わかりにくかったので簡略化。
ボクにもでけた。DraftPad で半角カナに変換 - takahashihideki素敵なプレゼント大先生の新しいアシスト。全角カタカナを半角にするんですが、もちろん、それが実用的かどうかではなく、...
DraftPadに下記アシストを追加してください。
Title: 電卓機能 URL: draftpad://self/web?source=<script>location.href=%22draftpad:///webdelegate?load=f%22;f=function(x){t=x.t;s=x.s;p=x.p;a=t.substr(0,p);b=t.substr(p);s=s.replace(/@/g,%22Math.%22);s=%22 = %22+eval(s);draftpad.replace(a+s+b,p);}</script>&t=<@@>&s=<@>&p=<#LOC>
たとえば「2/(@sqrt(5)+1)」と書き、このアシストを実行。カーソル行を対象にします。
すると画面に答が追加される。エディタ上にあるから、書き写す手間も要らない。「(@sqrt(5)+1)/2-1」と修正すれば再計算もすぐ出来る。ちなみにこれは黄金比の数式です。半分にしても比率が変化しないなんて不思議。
関数は、javascript のMathオブジェクトを利用しています。@マークをつけると、それが関数として扱われる方式です。代表的な関数は次のようなの。
@PI パイ。円周率の値を返します。
@sqrt(x) 平方根。
@pow(x, y) ベキ乗。x を y 回掛け算します。
@sin(x) サイン。x はラジアンで指定します。
@cos(x) コサイン。同じくラジアンで。
@log(x) 自然対数。
Mathオブジェクト/JavaScriptリファレンス
また、「;」で区切ることで変数を使うこともできます。たとえば「x=28800; y=1.05; x/y」とすると、最後の「x/y」に値を代入し、iPad mini(16GB)の税抜き価格がわかる。x の数字を変えることで、他の税抜き価格を計算することもできます。スクリプトも使え「Date()」とか「d=new Date();d.toLocaleString()」で時刻取得もします。
@マークを関数にするのは、昔懐かしい「ロータス 1-2-3」のネタです。Excelより使いやすかったんだけどなあ。
(おまけ情報)
今だけ無料のiPhone用電卓アプリ。計算結果をドラッグして、横に避けたり戻したり。こういうデザインの発想は楽しい。