問題タブ [scalaz-stream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - チャンクとzipWithIndexを使用したscalaz-streamの不可解な動作
scalaz-stream を使用して、コストのかかる操作でデータのストリームを処理しようとしています※。
※はい、はい、副作用のあるコードを混在させることは、関数型プログラミング スタイルとしてよくないことだとわかっています。print ステートメントは、高価な() が呼び出された回数を追跡するためのものです。)
コストのかかる操作にデータを渡す前に、データをチャンクに分割する必要があります。
次に、コストのかかる操作をチャンクのストリームにマップします。
これを実行すると、expected() が予想される回数だけ呼び出されます。
ただし、zipWithIndex への呼び出しをチェーンすると、expensive() が何度も呼び出されます。
これはバグですか?それが望ましい動作である場合、誰かが理由を説明できますか? cost() に長い時間がかかる場合、呼び出し回数が少ない結果を好む理由がわかります。
より多くの例を含む要点は次のとおりです: https://gist.github.com/underspecified/11279251
scala - ストリーム処理
ユーザーがアップロードしているときfile
に、次のように動作する必要があるという要件があります
1) ファイル アップロード ダイアログ (ブラウザ内) がユーザーに表示されます。ユーザーがファイルを選択します。2) アプリケーションは最初の x 個のレコードのみをロードする必要があり (たとえば、レコードの総数が 100 の場合、最初の 10 個を取得するとします)、ユーザーはレコードを視覚的に確認できます (読み取り専用ビュー)。3) 次に、ユーザーは次の 2 つのいずれかを決定します。「送信をクリック」すると、すべてのデータとサーバーへのストリームが取り込まれます。または、「次へ」をクリックすると、次の 10 レコードを確認できます。
Scalaz -streamは全体的なソリューションとして、特に上記の 2) と 3) を実行するのに適していますか? 部分的なデータのみを取得してストリームを一時停止し、プロセスを継続して消費し、繰り返すには?
scala - Scalaz ストリームを使用して、A => Task[B] を Process1[A,B] に変換する方法
リモートサーバーへの http リクエストを、ID を取得して Task[JValue] を生成する関数としてエンコードしています。
プログラムを簡素化するために、その関数を Process1 に変換したいと思います (単純化とは、Processes を可能な限りビルディング ブロックとして使用することを意味します)。
関数を変換したい
(ここで、A は Id のタイプ、B は応答のタイプです)
scala - なぜ iteratee よりも scalaz.stream が必要なのですか?
最近はscalaz.iterateeと Play のiterateeで遊んでいます。iteratee は、古い命令型 while ループの代わりにモジュール性を提供するための優れたアイデアだと思います。その目的は、ファイルから string[] を取得する代わりに、新しい行ごとに関数をハンドラーとして使用することです。
しかし、scalaz.stream の機能概要を見ると、その設計は古い iteratee 実装に取って代わるものであると述べられていますが、なぜそれを置き換えたいのかについては言及されていません。
ストリーミングできるかどうか、取得できる機能と利点、および iteratee を使用することの欠点について説明してもらえますか?
scala - 不思議な Scalaz NoClassDefFoundError と scalaz.InvariantFunctor エラー
私は次のbuild.sbtを持っており、sbtを管理するIntelliJでScala 2.10.4を実行しており、sbtビルドファイルに基づいてプロジェクトを更新しています。scalaz-streams を追加するまでは、すべて正常に動作していましscalaz.concurrent.Task
た。次のエラーのいずれかに遭遇せずに使用することはできないようです。
この build.sbt では、次のエラーが発生します。
「scalaz-concurrent」のコメントを外すと、同じエラーが発生します:
これらの最新の例を実行しようとすると...
また、同様のエラーが発生します。
また、次のエラーが発生しました。
これらの奇妙なエラーに遭遇せずに scalaz ストリームを使用する方法を知っている人はいますか? 私は akka アクターと先物、そしておそらく shapeless と scodec で scalaz-streams を使用しようとしています。
scala - eval T => scala.concurrent.Future[T] を Process[?, T] に繰り返し
私には機能がありますget: T => scala.concurrent.Future[T]
私はそれを次のように繰り返したい:
しかし、Iterator の型はFuture[T]
です。この Iterator を処理するのは簡単ではありません。
どうすればそれを転送できますか
Process[?, T]
(おそらくT => Future[T]
コンテキストタイプとしてF
)。