3

私は最近、Scalaの学習に興味を持っており(現時点では主にProject Eulerを介して作業しています)、作成したい単純なプログラムである単純な並行ダウンローダーを決定しました。私はそれを行うための良い方法に頭を包むのに少し苦労しています。

私はPythonをよく知っており、geventライブラリの動作方法が気に入っています。私がやりたいことはここのgeventで解決されます。Scalaでこのようなことをする簡単な方法はありますか、それとも私は完全に間違った道を進んでいますか?Dispatchライブラリを見ましたが、理解できないようです。アクターを使用する必要がありますか?

任意のヘルプやガイダンスをいただければ幸いです。ありがとう。

4

1 に答える 1

6

わかりました、現時点ではDispatchのドキュメントが少しラフで小さいことに同意しますが、将来的にはおそらく変わるでしょう (そして、多くの優れた Scala ライブラリの状況です)。

しかし、必要に応じて Dispatch を適用した結果は素晴らしいものです。

import dispatch._
(1 to 100).map{ i => 
   Http(url("http://bash.org/?" + i) OK as.String) 
}.map{ f => 
  try {Some(f.apply)} catch {case e => println(e.getMessage); None}
}.seq.flatten

これにより、 からの最初の 100 件の引用のファイルがbash.org並行して取得されます。

于 2012-08-28T07:21:28.413 に答える