そのため、scala でパッケージをインポートするのに問題があります。確率分布からサンプリングしたかったので、 パッケージ Breeze を github からダウンロードしました。
Python では、パッケージをダウンロードしてパスに含め、コードにインポートするだけで済みます。したがって、別の「ビルドツール」を使用してサードパーティのパッケージを使用するという考えには、私は非常に慣れていません。
そこで、github から「breeze」ソース コードをダウンロードし、sbt をインストールしてから、breeze のソース コード内で sbt を実行し、「assembly」コマンドを使用して、breeze の .jar を取得しました。
scala インタープリターを使用したい場合は、パッケージを問題なくインポートできます。
scala -cp breeze-master/target/scala-2.11/breeze-parent-assembly-0.8.jar
問題は、Chromosome.scala というファイルに記述している別のコードでこのパッケージを使用したいということです。パッケージをインポートしようとすると (以下を参照)、エラーが発生します。
error: not found: object breeze
これが私のコードです:
// Chromosome.scala
import breeze.stats.distributions._
class Chromosome(s:Int, bitstring:Array[Boolean]) {
val size:Int = s;
val dna:Array[Boolean] = bitstring;
var fitness:Int = 0;
def mutate(prob:Float):Unit = {
// This method will randomly "mutate" the dna sequence by flipping a bit.
// Any individual bit may be flipped with probability 'pm', usually small.
val pm:Float = prob;
// The variable bern is an instance of a Bernoulli random variable,
// whose probability parameter is equal to 'pm'.
var bern = new Bernoulli(pm);
//Loop through the 'dna' array and flip each bit with probability pm.
for (i <- 0 to (size - 1)) {
var flip = bern.draw();
if (flip) {
dna(i) = !(dna(i));
}
}
}