エンドユーザー向けの簡単な埋め込みスクリプト言語を必要とする計算指向のアプリの言語を評価しています。私は、Scalaを主要な基礎言語として使用し、Jythonをスクリプトインターフェイスとして使用することを考えていました。:*
Scalaの魅力は、行列オブジェクトの要素ごとの乗算などのメソッドを定義し、それを中置構文で使用できることa :* b
です。ただし、:*はPythonでは有効なメソッド名ではありません。Jythonはこれにどのように対処しますか?
柔軟性があるため、スクリプト言語としてScalaを使用することを検討します。しかし、型推論を使用しても、matlabのような動的言語に慣れている一般ユーザーにとって、すべてのval
およびvar
必要な型定義は多すぎます。比較すると、Booには機能する可能性のあるオプション-ducky
オプションがありますが、.NETではなくJVMを使用したいと思います。-ducky
Scalaはないと思います。
より一般的には、潜在的ディリクレ割り当てをモデル化するために、次のDSL(http://www.cs.utah.edu/~hal/HBC/から)を検討してください。
model {
alpha ~ Gam(0.1,1)
eta ~ Gam(0.1,1)
beta_{k} ~ DirSym(eta, V) , k \in [1,K]
theta_{d} ~ DirSym(alpha, K) , d \in [1,D]
z_{d,n} ~ Mult(theta_{d}) , d \in [1,D] , n \in [1,N_{d}]
w_{d,n} ~ Mult(beta_{z_{d,n}}) , d \in [1,D] , n \in [1,N_{d}]
}
result = model.simulate(1000)
この構文は、階層ベイズモデリングに精通しているユーザーにとっては素晴らしいものです(たとえば、PyMCMCと比較して)。Pythonのような基本的なスクリプト言語にアクセスできることに加えて、そのような構文を簡単に定義できるJVM上の言語はありますか?
感謝します。