Excelのようなプログラミング


Mathematicaはバージョン6でDynamicというおもしろい機能が追加されました(動的言語とは関係ありません。もとから動的ですし)。いろんな解釈があると思いますが、Dynamicで何ができるかというと、Excelのようなプログラミングです。ここで考えているExcelの機能とは、複数のセルが関連しているところで、あるセルの値が変更されると、関連するセルの値が自動的に再計算される、というものです。

Dynamicによって、Mathematicaのプログラミングスタイルは大きく変わると思うのですが、残念ながら、今のところは「GUIを簡単に作れる」という応用が主になっています。

たとえばこんな感じです。

center[p_, q_, r_] :=
 With[{np = Normalize@p, nq = Normalize@q},
  r Normalize[np + nq]/Sin[ArcCos[np.nq]/2]]

Manipulate[
 Graphics[{
   Line@{o, p},
   Line@{o, q},
   Circle[o + center[p - o, q - o, r], r]
   }, PlotRange -> 2],
 {{o, {-1, 0}}, Locator},
 {{p, {0, 1}}, Locator},
 {{q, {0, -1}}, Locator},
 {{r, 1}, 0, 2},
 SaveDefinitions -> True]

Wolfram CDF Playerがインストールされていれば実際に動かすことができます(UMMでも動きます)。

「こういうことがCAD上でできたらおもしろい」と思ったのですが、AutoCADなんかですでに実現されていますね。

だから、Mathematicaを使う人たちは、もっと別の応用を考えなければいけないのです。

Related posts:

  1. ケプラー問題の数値解
  2. Unicode文字列の正規化(Javaの場合)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>