問題タブ [iterate]

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.

0 投票する
2 に答える
909 参照

haskell - Iteratees と FRP の関係は何ですか?

二つの考えの間には強いつながりがあるように私には思えます。私の推測では、Iteratees で任意のグラフを表現する方法があれば、FRP は Iteratees の観点から実装できると思います。しかし、私の知る限り、彼らはチェーンのような構造しかサポートしていません。

誰かがこれに光を当てることができますか?

0 投票する
1 に答える
778 参照

scala - ファイルに書き込む Scala iteratee

saveを取り、Iteratee itいくつかのデータを に保存するメソッドがありますit。メソッド内では、データはバイト配列チャンクを生成する列挙子として使用できます。

募集:saveにデータを書き込むために呼び出しFileOutputStreamます。

次のことを試しましたが、これが正しい方法かどうかわかりません。

質問:これは本来行われるべき方法ですか? これが常にストリームを閉じるとは限らないのではないかと心配しています(例外の場合)。

Play Framework 2.1 (Scala フューチャーを使用)の Play Framework Iteratee ライブラリを使用しています。

0 投票する
1 に答える
1103 参照

scala - Scala Play で状態を管理する方法 2.0 ウェブソケット?

https://github.com/playframework/Play20/tree/master/samples/scala/websocket-chatの例を見ています

Websocket コントローラーを作成するには、次のように記述します。

Chatroom.join はscala.concurrent.Future[(Iteratee[JsValue,_],Enumerator[JsValue])] を返します。しかし、Play! 内で使用される iteratee と列挙子はどこにありますか? フレームワーク?WebSocketクラス (WebSocket.scala)は入力を無視しているようです:

どうやって遊ぶの!入力を消費する際に iteratee の変化する状態を管理しますか?

0 投票する
1 に答える
839 参照

functional-programming - How to get an Enumerator[T] from List[T] when using Play 2 Iteratees

I am quite new to Play 2 and am trying Iteratees.

Q1. How can I get an Enumerator[Person] from List[Person]?

Q2. When I try to pass an Enumerator(Option[String]) to Ok.stream I get an error on console stating that

Cannot write an instance of Option[String] to HTTP response. Try to define a Writeable[Option[String]]

Can someone point me in the right direction as to how I can define a Writeable for custom types to HTTP response?

Thanks.

0 投票する
1 に答える
979 参照

scala - Scalaで利用できる十分に開発されたiteratee/パイプライブラリは何ですか?

Scalaには、Haskellのパイプ、または少なくともiterateeの精神で十分に開発されたライブラリがありますか?

PromisePlayのiterateeライブラリを最初に見つけましたが、それを機能させることができず、多くの場合不適切である可能性があるPlayの同時実行プリミティブと緊密に結合しているようです。

Scalazにはいくつかのiterateeサポート(IterVなど)がありますが、追加のサポート関数、事前定義された反復子/列挙子などがないコアクラスしかないようです。また、ドキュメントが見つかりませんでした。scaladocでさえ非常にまばらなので、作成するのは非常に困難です。正しく使用してください。

そして、私はパイプに似たものを見つけることができませんでした。

0 投票する
1 に答える
110 参照

json - json/twitter 検索のより多くのレベルにアクセスするには、ヘルプが必要です

Twitter検索やストリーミングを行う@diegolparraの例を使用しています。

この例では、twitter 検索の結果からフィールド from_user_name と text を取得します。ここで、created_at date ともう 1 つのレベル (ノード ユーザー) にアクセスして、ユーザーから取得する必要があります: profile_image_url と lang.

助けてください。

ありがとう。

0 投票する
3 に答える
712 参照

scala - Scalaz 7 Iteratee で大きな zip ファイルを処理する (OutOfMemoryError)

scalaz iteratee パッケージを使用して、一定のスペースで大きな zip ファイルを処理しようとしています。zip ファイル内の各ファイルに対して実行する必要がある長時間実行プロセスがあります。これらのプロセスは並行して実行できます (また、並行して実行する必要があります)。

それぞれをオブジェクトにEnumeratorT膨らませるを作成しました。署名は次のようになります。ZipEntryFile

IterateeT各ファイルに対して長時間実行されるプロセスを実行するを添付したいと思います。私は基本的に次のようなものになります:

実行しようとすると:

java.lang.OutOfMemoryError: Java heap spaceメッセージが届きます。IOこれらすべてとPromiseオブジェクトのメモリに大量のリストを構築しようとしているので、これは私には理にかなっています。

いくつかの質問:

  • これを回避する方法について誰かアイデアがありますか? longRunningProcess私は本当にその副作用だけを気にしているので、私は問題に間違ってアプローチしているように感じます.
  • ここでのEnumeratorアプローチは間違ったアプローチですか?

私はアイデアがほとんどないので、何でも役に立ちます。

ありがとう!

更新 #1

スタック トレースは次のとおりです。

私は現在、nadavwr のアドバイスを受けて、すべてが私が思うように動作していることを確認しています。更新があればまた報告します。

アップデート #2

以下の両方の回答からのアイデアを使用して、適切な解決策を見つけました。huynhjl が示唆したように (そして、ヒープ ダンプを分析するという nadavwr の提案を使用して確認しました)、consumeすべての膨張ZipEntryしたものがメモリに保持されていたため、プロセスがメモリ不足になりました。ファイルへの参照ではなく を返すように、実行時間の長いプロセスに変更consumeして更新しました。そうすれば、最後にすべての IoExceptions のコレクションを取得できます。実用的なソリューションは次のとおりです。foldMPromise[IOE[Unit]]

このソリューションは、各エントリを非同期にアップロードしながらインフレートします。Promise最後に、エラーを含む実行済みオブジェクトの膨大なリストがあります。これが Iteratee の正しい使用法であるとはまだ完全には確信していませんが、システムの他の部分で使用できる再利用可能で構成可能な部分がいくつかあります (これは私たちにとって非常に一般的なパターンです)。

ご助力いただきありがとうございます!