電卓って苦手!電卓タイプの計算機の操作って、面倒臭くないですか?一度打ち込んだ式の再利用ができないし、M+、M-、MC、MRなんかも難しい!数十年前の電卓から続く作法にとらわれる必要は無いと思うのです。正直に白状すると、moyashiはいまだに電卓、ならびに電卓の操作を再現した計算機アプリのメモリ機能を使いこなすことができません。すると、後で必要な計算結果を紙に書いてしまったりします。電卓の難しさから逃れる方法は無いの?電卓の操作は難しい。普段プログラミング言語に接しているとそう思います。普通の電卓だとメモリ機能を使うことになりますが、moyashiにはこれが難しい。プログラミング言語でこれを計算する場合は、以下のように書きます。掛け算の「×」が「*」になっていますが、ほぼそのまんま計算式を入力すれば、221550という結果を出してくれます。いう感じで計算をしたい。思いませんか?これができれば、難しい電卓の操作に習熟しなくとも済むことになります。できるなら過去に入力した計算式を再利用したい。一部しか変わらない計算を、一から入力し直すのは非効率です。ちなみに、このようなプログラミング言語を使って計算する場合、整数同士の計算結果が小数であると予想される場合は、整数を小数として書く必要がある場合があることに注意してください。3結果は3.33333になりそうですが、実際には3となり、小数点以下は切り捨てになります。3.0といった感じで小数を交ぜます。前出の通り、計算に使う記号は、プログラミング言語では置き換えが必要になることがあります。/(スラッシュ)iOSで使える式入力式の計算機アプリや、プログラミング言語を探そうということで、iOSで使える式入力式の計算機アプリや、プログラミング言語を探してみました。以前Appleが開発者向けSDK利用規約を緩和し、インタプリタが使えるようになったので、何かしら見つかりそうです。Japan式計算機編まずは式計算機タイプのアプリから紹介します。計算式をテキストで入力すると、計算結果を返してくれる計算機を式計算機と定義します。非対応ノートに書くような感覚で計算ができるSoulverというものが、この分野においてトップシェアを持っているようですね。非常によく作り込まれています。Dropboxを介して、iPhone、iPad、Macで同期ができるのも素晴らしい。2とノートに書くと、右の水色の計算結果表示欄に計算結果が自動的に表示されます。冒頭のラベル「foo:」は書かなくとも構いません。「お買い物帳」的な使い方に縛られそうな気がしますが、そんなことはありません。純粋な式計算機として使えます。した行を縦に並べていくと、それらの合計が自動的に集計され、最下段に表示されます。「お買い物帳」として使わないと、この合計が無意味なことはあるでしょうね。日本語のヘルプも付いていて、まず使い方が分からないということはないでしょう。式入力型の計算機です。言語は、その名の通りJavaScriptです。式を入力すると、リアルタイムで計算結果が最上段の結果表示欄に表示されます。一度入力した式は履歴として記録されていて、画面右下にある上下の矢印ボタンで後から呼び出すことができます。呼び出した式は、テキストとして自由に編集ができますので、再利用に問題ありません。履歴機能はWebブラウザの履歴のように自動記録であるために手軽である一方、残したくないゴミが溜まってくるので、後出の再利用性にフォーカスした式計算機と異なり、思った履歴を呼び出してくるのが若干困難ということはいえます。式の中の後からいろいろと変えたい数字は、「a」、ないしは「b」という文字を式の中に入れると、画面中央の「a」ボタン、「b」ボタンの右にある欄に入力した数字と置き換えられます。税率は変わりませんから、そこは固定。税金のかかる商品の価格はいろいろですから、ここは変わりますね。1.05」を打ち直さなくて済みます。このように、中身の入れ替わる入れ物として機能するものを「変数」といいます。非常にユニークで便利。調べてみるものですね。JSCalculatorは、そこにある式編集スペースにおもむろに式を書いていくのに対し、MagiCALcは、「+」ボタンを押して、新たにエントリを作る、ないしは既存のエントリを編集するところから始めます。式を入力していくのですが、式の中に前述の変数を書いていくことができます。JSCalculatorではaとbの二つしか変数を使えませんでしたが、MagiCALcでは任意個数の変数を使うことができます。普通のプログラミングと違うのは、何の準備も無くいきなり変数を書いていいことです。変数には日本語を使うことも、空白を含めることもできます。従って、計算式は以下のように書くことができます。0.01)この式を唯一のStepとして登録し、実行すると、値段と税率を入力するUIが自動的に生成され、入力を促されます!「税率(%)」は、これで一つの変数です。こんな命名、普通のプログラミング言語では絶対やりませんが、MagiCALcは、うまいことこれを変数として認識してくれます。変数に格納すると、それが結果として表示されてしまいますが、いったん変数に格納しながらも内部的なものとして隠しておきたい場合は、スクリーンショットにもありますが、変数の頭に@を付けます。計算式をリスト、カテゴリで管理できること、作成した計算式をMagiCALcの公開サーバに提出(即座に登録はされず、作者による審査がある)したり、サーバ上にアップされた様々な計算式をダウンロードしたりして使うことができること、Dropboxに対応しており、作った式を保存できたりすることなど、計算式を一つの財産として活用しよう、再利用しようという方向性が大変気に入りました。サーバからダウンロードできる計算式には、動画のビットレート計算など、独特なものがたくさんあります。足し算の暗算も怪しいmoyashiですが、計算マニアになってしまいそうです!Soulver、JSCalculatorは、計算式をゴリゴリその場で書いて、書き捨て気味にその場で実行していくのに対し、MagiCALcはお膳立てをきっちりやった後で厳かに実行、といった感じでタイプが異なります。まとめている点が独特です。作った計算式を複数保存して適宜実行できます。MagiCALcとよく似た感じで、作りがシンプルな分、理解しやすいと思います。デフォルトで登録されている計算式を選択し、「編集」ボタンを押せば、iOSの作法に則り、なすべきことは理解できるでしょう。MagiCALcは計算式内の変数を検出して入力欄を自動的に生成していたのに対し、計算君はその辺りが手動での設定になりますが、神の手が介在しない分、却って分かりやすいかと思います。MagiCALc同様、計算君も作った計算式のサーバへのアップロード、サーバからのダウンロードができます。管理者の審査を経て他の人がダウンロードできる共有財産となります。計算君は、MagiCALc同様、お膳立てをきっちりやった後で厳かに実行、といった感じで、Soulver、JSCalculatorとはタイプを異にします。非対応DigiNoteは、見た目がテキストエディタのようですが、計算式を書くと、行末にその計算結果が自動的に赤字で書き込まれます。ユニークなアプローチで、使うと思わず「ほほう」と感嘆の台詞を漏らしてしまうでしょう。計算式を修正すると、行末の計算結果もリアルタイムでその修正に伴ったものに更新されていきます。代入文(「変数=値」で値を変数に格納する。「変数←値」と読み替えると分かりやすい)で変数を使うこともできます。Lite版があるので無料で試すことができますが、32文字しか書けないので、Lite版は実用には適しません。それだけでも、このDigiNoteの魅力は伝わるだろう、ということなのでしょう。計算式を書き込むノートは、もちろん複数保存してリストから選択して実行(逐次実行されるので、実行ボタンがあるわけではありませんが)できます。ノートの名前の変更方法が分かりにくいですが、「ノートリストでダブルタップ」これで名前変更の画面に移行します。ノートに計算式をサクサク書いて計算していける感じは、事前の仕込み重視のMagiCALc、計算君より、Soulver、JSCalculatorに近いタイプといえます。非対応ルートなどを入力すると、TeXでの数式の表現のように、美しく表示されるのが特徴的です。一度入力した数式は履歴として上に流れていきます。履歴をタップし、「copy」ボタンを選ぶと数式入力欄に呼び戻され、テキストとして編集ができます。複雑な数式が視覚化されるので、後で再利用したいときに、目的のものを探すのが楽でしょう。たくさんの関数も利用できます。ちなみに、計算式を入力し、enterボタンを押しても履歴の右辺は計算式をオウム返しにするだけで計算結果が表示されませんが、これは式をタップして「num」ボタンを押すと計算が実行され、計算結果に置き換わります。見逃しがちですが、ボタン部分は左右にスワイプできます。起動すると、テキスト入力欄が一つだけ表示されています。式を入力してReturnキーを押すと式が実行され、下に実行した式が履歴として記録されていきます。履歴上の式をタップすると、再度テキスト入力欄に入力され、テキストとして編集ができます。一応用は足せますし、使用感は悪くはありません。スクリーンショットには出てませんが、この下にほかの有料アプリの宣伝が常時表示されています。85円とはいえ、一応有料アプリなのに、これはちょっとなぁと思ってしまいます。非対応iWorksの中の表計算ソフト、Numbersも、式計算機として使えないことはありません。iCloud経由でワークシートを共有できますので便利です。NumbersはiPadサイズの画面が無いと、ちょっと使いづらいですね。式計算機の中では、Soulver、DigiNote、MagiCALc、計算君がおすすめです。履歴付き式計算機としての機能を発揮するとともに、計算機アプリの新しい世界を見せてくれます。¥85JavaScriptの心得があれば、JSCalculatorも気に入るでしょう。¥85これ以外にも履歴機能を持った式計算機系アプリを試しましたが、履歴を呼び出すまではできるものの、再編集できなかったりで、自分の目的にかなったものでなかったので紹介しておりません。Proが傑出しています。グラフィックが綺麗で気持いいし、iPadのLandscapeモードでは、ボタンが左右端に分割して表示され、iPadを両手でつかんだ状態で使いやすい。いったことに代表される、使い勝手に対するきめ細やかな配慮が随所に感じられます。引き続き、式計算機として使うことが可能であろうプログラミング言語を紹介していきます。ここまでに紹介した式計算機で、冒頭で吐露したニーズに事足りるのですが、if文やら制御構文が必要、または慣れた言語のインタラクティブモードで乳繰り合いたいといった方もいらっしゃるかと。非対応i++という、文法がC++やJavaに近いプログラミング言語ベースの開発環境。実行時に、任意個数の引数を渡すこともできます。出来ている開発環境です。プロジェクト作成、関数を定義、そして実行。MagiCALcのような式計算機としても使えます。sheetというスクラッチパッド機能が付いていて、ここにコードのスニペットを適当に書いて、その場で実行できます。プロジェクトを作り、関数を定義し、ということをせずとも、コードを書いて素早くテストができるのは気が利いています。非対応ECMAScript(JavaScript)ベースの開発環境。Calculate」は、上段の入力欄にECMAScriptを記述。下段のコンソールに実行結果が表示されます。Viewになっており、上段に記述したECMAScriptがWebページとしてレンダリングされます。「RegExp」は、上段に処理対象となるテキスト、正規表現、置換テキストと三つ入力欄があり、下段には処理結果が表示されます。スニペットをササっと書いて実行することができるので、ふと思いついたコードを試してみるのに便利ですね。式計算機として使うには、Scripterのような引数を渡すためのUIがありません。prompt()を使うか、プログラムを直接書き換えることになります。式計算機のことを離れて評価すると、ECMAScript(JavaScript)のテストを、「Calculate」、「HTML(Web)」、「RegExp」という三つのモードに分けたことには納得感があります。横画面、外付けキーボードとの相性もいい感じです。非対応FirebugのConsole機能だけを取り出して、単体でアプリにしたかのようなものです。最上段に入力欄があり、入力したJavaScriptと、実行結果がその下にログとして流れていきます。ログ中の、右端に鎖のアイコンが表示された、過去に実行したJavaScriptをタップすると入力欄に転記され、再利用ができます。URLを渡すとDOMが展開され、その中を探索できるようです。jqueryなど外部のライブラリを読み込むこともできるようです。http://hoge.com/計算式をそのまま入力すれば結果が返ってきますし、前述の通り履歴の再利用も可能ですが、一度アプリケーションを終了すると履歴は消えてしまいます。1;計算結果を変数に格納しておくと、アプリケーションを終了するまで、以降参照が可能です。a;式計算機としては履歴が消えてしまうのが残念なところですね。非対応iMessageそっくりの、変わり種のJavaScriptインタラクティブシェル。スクリーンショットに見えている機能しかありません。履歴機能がありませんから、実行前にクリップボードにコピーでもしておかない限り式の再利用ができません。式計算機としては、ちょっと辛いといえます。「+」ボタン一つでプロジェクトを生成。プロジェクトには、CSS、HTML、JSの三つのファイルが帰属。これを編集してWebページを作ることができます。ファイルを足すことはできません。作ったWebページは、閲覧モードで閲覧可能。ファイルはすべてローカルに置かれているので、オフラインでもJavaScriptベースのWebアプリケーションを動作させられることになります。式計算機をWebアプリとして自分で作り込む可能性が開かれています。iTunesからライブラリを足せればと思ったのですが、ファイル共有欄にScriptDeckの名前はありませんでした。「+」ボタン一つでプロジェクトを生成。プロジェクトには、CSS、HTML、JSの三つのファイルが帰属。これを編集してWebページを作ることができます。ファイルを足すことはできません。要するに、ScriptDeckとほぼ同様のWebアプリ、Webページ開発環境です。画面下がタブによって占められる構成で、「Description」、「Javascript」、「HTML」、「CSS」、「Run」と5つのタブから成ります。作ったWebページは、Runタブで閲覧可能。タブをカチカチ切り替えてファイルを編集、プレビューするスピード感はScriptDeckより断然上です。ScriptDeckは、ページを確認するためには、いったん上の階層に戻らないといけません。jstakeは横画面に対応していません。諸事情でiPadが4.3.3なので、iPadでの動作確認ができておりません。ファイルはすべてローカルに置かれているので、オフラインでもJavaScriptベースのWebアプリケーションを動作させられることになります。式計算機をWebアプリとして自分で作り込む可能性が開かれています。ScriptDeckと同じく、jstakeもiTunesファイル共有には対応していません。非対応ScriptDeckとよく似たWebアプリ開発環境です。ScriptDeckがプロジェクト単位での管理だったのに対し、JavaScript-1は、html、js、cssなどが生のまま見えています。ディレクトリを作ったりはできないので、一つのディレクトリに全部のファイルがぶち撒けられます。htmlだけはWebページとしてプレビューすることができ、js、cssはhtmlからリンクする形で実行できます。ScriptDeckと違ってiTunesからファイルを転送、iTunesを通してファイルを母艦にコピーしてこれます。うまくやれば、ローカルWebアプリ実行環境として使えそうです。式計算機としては、動かすWebアプリ次第ですね。非対応JavaScriptベースの開発環境。いっても、ScriptDeckのようなWebアプリの開発環境というわけでなく、RhinoやSpiderMonkeyのような感じ。JavaScriptを直接実行します。print()、println()が使えます。printメソッドからの出力はhtmlとして解釈されるので、document.write()のような感じで使えます。できるので、式計算機として使えないこともありません。以前のWordPressにあったような、日本語キーボードの高さにまつわるバグがありますね。外付けキーボードを使う分には大丈夫です。非対応iPad専用アプリですが、出来のいいIDEが付いた開発/実行環境Codea。前までCodifyという名前でした。四則演算ができますし、シンタックスハイライティング付きのエディタでプログラミングできるので、快適に使えます。ゲームや、動きのあるプログラムを開発するという指向性があるため、式計算機に使うにはちょっと大げさです。非対応Luaの開発環境。結論から言うと、これは式計算機用途に向いていません。インタラクティブモードがありませんし、作ったプログラムの実行は、iLuaBox内のディレクトリにあるコンソールに表示された、番号付きのファイル一覧から数字で選択といった具合。BASIC搭載パソコンを操作しているかのような使い勝手です。常に縦ニ分割であるため、iPhone縦持ちで使うには無理があります。有料で追加できるToolboxには面白いものがあります。ProにはこれらのToolboxが標準搭載で、今からクリスマスまでは安価で購入可能。非対応Luaのインタラクティブシェル。$のプロンプトで始まる入力行が1行あるだけのシンプルな作り。キーボードにはプログラミングに使う記号の入力を助けるキーボードアクセサリが付いています。興味深いのは、入力補完を備えること。候補として「math、mutex、max、min」などのLuaの予約語が現れます。履歴を呼び出す機能が無いようで、その点で式計算機として使うには辛いといえます。「+」ボタン一つでエントリを生成。エディタの中でLuaプログラムを編集、実行ができるという、Codeaを除くと、Lua一族の中で一番使いやすいものといえます。素早くできるので、Codeaより式計算機として使いやすいです。引数の渡し方に関して特別な機構は搭載されていないので、プログラムの中の変数の値をいろいろに変えて実行したい場合は、プログラムを直接編集することになります。非対応Pythonのインタラクティブモードで計算をしよう、という目的で作られたと思われるもの。Pythonのインタラクティブモードそのまんまです。スクリーンショットには写っていませんが、上下の矢印を押すことで履歴をたどることができます。履歴は再編集できます。アプリケーションを終了すると履歴はリセットされてしまいます。どこまでできるかは分かりませんが、ディレクトリ作成なんかはできてしまいました。'var']非Jailbrokenな環境でも、ルートからのディレクトリリストが取れてしまったりして、これ大丈夫?Pythonが好きな人にはおすすめできます。非対応Pythonのプログラムが実行できます。画面が上下にニ分割されています。画面上半分がエディタとなっており、Pythonのプログラムを記述します。画面下半分には、print()メソッドからの出力が表示されます。Mathと非常に似たものですが、インタラクティブシェルではなく、画面上半分に書いたものが、実行ボタンを押すといっぺんに実行されます。Mathは「1+1」と書けば「2」と返ってきていましたが、PyPadでは、明示的にprint()メソッドを使わないと画面下半分に表示されません。MathはiTunesからファイルを転送できませんが、PyPadはiTunesからファイルを転送したり、PyPadで作ったファイルを母艦に持ってこられるのが大きく違う点です。LuaCoderなどのように、複数のプログラムを保存、実行できるような機能は持っておらず、その場に書いたものを実行するだけとなります。エディタに書いておいたPythonは、一度アプリケーションを終了させるとクリアされてしまいます。Mathのように、ファイルアクセス系のメソッドも潰されていないようですね。非対応Rubyのインタラクティブシェル、irbです。履歴が使えないので辛いです。Socketなどは潰されているようです。ファイルアクセス系のメソッドも、FakeFSで上書きされている模様。putsを使わなくても結果は表示されます。Store唯一の動くRubyということで、Rubyファンは入れておいてもいいかもしれません。非対応iPad用のScheme実行機能付きスクラッチパッド。Lisp!後置記法(逆ポーランド記法)での式計算機が欲しければLispです。1)式を書いて、式を選択すると画面右上に「Evaluate」ボタンが表示されるので、それを押すと評価されます。リファレンスやヘルプ(英語)が充実しているので、Schemeを勉強するのにいいかもしれません。アプリケーションを閉じるときにスクラッチパッドの内容が自動保存され、アプリケーションを終了させてもプログラムが消えず、次回の起動時に復帰してくれるので、計算用紙的に気軽に使えそうです。Emacsでは*scratch*でよく計算をしており、内容を自動的にファイルに保存、起動時に復帰させているため、まさにiPadに*scratch*がやってきたかのようでうれしいです。IIIと非常に似た、Scheme評価機能付きスクラッチパッド。IIIと異なり、iPhoneでも使うことができます。機能は非常にシンプル。ソフトウェアキーボードを閉じるタイミングで記述したSchemeが評価されます。この仕組みが、外付けキーボードを使うときに問題となります。評価対象は、スクラッチパッドの全域となります。IIIは、必ず事前に選択しないとならず、そこが面倒と感じるので、iScheme方式もまたアリと感じます。スクラッチパッドに記述したSchemeは、アプリケーションの終了タイミングで消えてしまいます。IIIの方が使いやすいですね。REPLしかありませんが。III同様のiPad専用のScheme開発環境。ダウンロードすると「iSkeme」という名前ですね。III、iSchemeと異なり、複数のファイルを管理、実行する機能が搭載されています。これはなかなかですね。Scheme系ではこれが最強でしょうか。キーボードに、記号入力用のキーボードアクセサリが付いています。)がエントリポイントのようです。Schemeを元にしたアプリケーションです。できるエディタが付いています。エディタでプログラムの実行を選択すると、別タブで待機しているGambitにプログラムが送られ実行されます。式計算機として使うこともにも、そう無理は無さそうです。実行の際にはrepl-eval関数を使い、repl-evalの引数は文字列である必要があるようです。repl-evalの引数に全部の処理を書くのは面倒なので、関数を定義し、関数の実行のみをrepl-evalから指示するというのが定石になりそうです。プログラムの1行目には、そのプログラムのファイル名となるものをコメントとして書いておく必要があります。非対応iPad用Ocamlプログラミング環境。使い方がよく分かりません!履歴が再編集できず、式計算機としても使いづらそう。非対応PileというRPNのためのプログラム言語の開発環境。これも使ったことが無くよく分かりませんが、複数のプログラムを管理、実行できる機能があり、またPile自体相当奥が深そうな言語なので、RPNが好きな方は試してみる価値はあると思われます。×プログラミング言語編総括このほかにもBASIC系、オンラインコンパイラがありますが、それらは割愛します。式計算機として見るとどれもオーバースペックな印象ですが、プログラム実行時に引数を渡す機能が付いているScripter(i++)が一番よさそうですね。REPL(Scheme)辺りが残ってくる気がします。PM数式処理のMathStudioもどうでしょう。PMこれは面白いですねぇ。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。