Analytica の Definition に Python コードを記述できるようになりました!Analytica スタイルのインテリジェント配列を使えば、Python 関数を簡単に呼び出すことができます。これにより、Python ライブラリ(Python 用語ではモジュール)の広大なエコシステムにアクセスできます。膨大な数の可能性の中には、データ可視化、統計、機械学習など、様々な用途に特化したライブラリが含まれています。つまり、Analytica と Python を自由に組み合わせて使うことができるのです。Analytica で最も扱いやすい部分は Analytica で書き、Python で最も扱いやすい部分は Python で書く、といった具合です。

Analytica でモデリングを行っていたユーザーにとっては、これにより大量のリソースがすぐに利用できるようになります。
Python 開発者にとっても非常に便利です。Analytica は、特にインタラクティブなコード開発において、多くの独自の利点を備えたインタラクティブな新しい開発環境になります。
Analytica のミッドティア・エディションは、これまで Enterprise Edition と呼ばれていましたが、この名称を Analytica Developer Edition に改訂しました。この名称は、意思決定アプリケーションの開発者向けソフトウェアという Analytica の本質をよりよく反映しています。現在 Analytica Enterprise をご利用の場合は、ライセンスの更新や特別な操作は必要ありません。Analytica 7.0 をインストールすると、名称が変更されます。Analytica のドキュメントでは、リリースバー(リリース依存コンテンツのあるページの上部)で「7.0」を選択すると、すべてのドキュメントで新しいAnalytica Developer エディションの名称が自動的に使用されます。
変数の識別子を変更すると、Analytica はすべての Definition を自動的に更新して新しい名称を使用します。しかし、インデックス内のテキストラベルを変更すると、従来はそのラベルを使用しているすべての Definition でエラーが発生していました。例えば、
Index Animal := ['Cat', 'Dog']
Variable Sound := IF Animal = 'Cat' THEN 'Miaow' ELSE 'Woof'
もし、Animal インデックスで ‘Cat’ (ネコ) を ‘Feline’ (ネコ科) に変更すると、Sound の Definition が以下のように自動的に更新されるようになりました。
IF Animal = 'Feline' THEN 'Miaow' ELSE 'Woof'
この処理は、Animal= ‘Cat'<label> という記述が見つかると必ず行われます。インデックスラベルを、通常インデックスが出現しないコンテキストで使用する場合は、新しい構文 Index-label dot syntax (Animal . ‘Cat’) を使用してください。ラベルをインデックスに関連付けることで、必要に応じてラベルが自動的に更新されます。これらの機能は、インデックス内のテキストラベルを更新する際のよくあるエラーを回避するのに役立ちます。
新しいオブジェクトクラス Callable は変数のようなオブジェクトです。つまり、Definition と計算値を持ちますが、計算値自体が呼び出し可能なものである場合、たとえば、ローカル関数 (別名ラムダ関数)、グローバル関数へのハンドル、Python クラス、Python 関数などである場合に、利便性とドキュメント化のために使用できます。
通常の Variable インスタンスでは、変数 X の内部にある呼び出し可能なデータアイテムの ID を「計算」する場合、構文 X->(a,b,c) を使用して呼び出すことができます。影響ダイアグラムでは、このオブジェクトは角の丸い四角形になり、その結果が呼び出し可能なものであることが分かりません。このクラスを Callable に変更すると、構文 X(a,b,c) を使用して呼び出しを実行できるようになり、そのノードの形状は Function の形状に変化します。これにより、このオブジェクトが呼び出し可能なものを保持していることが分かるようになります。
Callable オブジェクトを作成するには、まず Variable ノードを作成し、次にオブジェクトウィンドウまたは属性ペインの Class ドロップダウンを使用してそのクラスを Callable オブジェクトに変更します。
Struct を使えば、アトム的で不変な新しいデータ型を定義します。種類の異なる複数のアイテムを束ねる必要があり、それらの次元が相互作用しないようにしたい場合に使用します。Struct のインスタンスは、配列の抽象化では、単一のセル(アトム)として扱われます。
関数のパラメータに渡す式を Expression 修飾子付きで宣言すると、ローカル変数の識別子が含まれるようになりました。このローカル変数は(Local function でキャプチャされる場合と同様に)キャプチャされます。
関数パラメータに新しい修飾子 Function_parameter_qualifiers#Lazy を追加しました。これは、渡された式を遅延評価するものです。関数の Definition では、式を通常の値パラメータであるかのように使用できますが、その評価は、関数の呼び出し時ではなく、値が使用される際に行われます。なお、評価コンテキスト(evaluation mode を含む)では、値は呼び出し時のコンテキストで使用されます。
新しい関数宣言 (…) により、関数の Parameters 宣言でパラメータ名として宣言されていないパラメータを、名前付きの超過パラメータとして呼び出し時に許容またはキャプチャすることが可能になりました。これは Struct 宣言でも使用できます。
Analytica 式で JSON を使用する際の利便性が、Structs として構文解析されるように変更されたことで大幅に向上しました。
スキーマを使用して構文解析する場合、Struct 宣言がスキーマとして機能します。これは、スキーマを指定するための従来のスキームよりもはるかに簡単で、Analytica ユーザーにとって馴染み深いものになります。
また、JSON をあらわすのに最も便利な表現 MakeJSON は、Struct (またはネストされた Struct) から JSON を生成できます。
SpreadsheetOpen に新しいパラメータ «backend» と新しいオプション ‘LibXl’ を追加しました。これにより、Excel をインストールしていなくてもスプレッドシートの読み込みと操作が可能になります。ただし、Excel バックエンドとは異なり、LibXl オプションには計算エンジンがありません(そのため、セルを変更した後にセルの数式を再計算できません)。このオプションは、*.xlsx ファイル形式のデータを読み書きしたい場合に適しています。

